commit af1eea76929ed7860ab5615c2615eb2ad2a4f294 Author: Ernad Husremovic Date: Fri Aug 29 15:43:06 2025 +0200 Initial commit: OCA Warehouse packages (12 packages) diff --git a/README.md b/README.md new file mode 100644 index 0000000..8b1bca3 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# OCA Warehouse + +This repository contains **12** OCA packages for warehouse. + +## Packages Included (12 packages) + +- **odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract** - From stock: logistics_barcode_barcodes_generator_abstract +- **odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location** - From stock: logistics_barcode_barcodes_generator_location +- **odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_package** - From stock: logistics_barcode_barcodes_generator_package +- **odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_product** - From stock: logistics_barcode_barcodes_generator_product +- **odoo-bringout-oca-stock-logistics-barcode-product_barcode_constraint_per_company** - From stock: logistics_barcode_product_barcode_constraint_per_company +- **odoo-bringout-oca-stock-logistics-barcode-product_multi_barcode** - From stock: logistics_barcode_product_multi_barcode +- **odoo-bringout-oca-stock-logistics-barcode-product_multi_barcode_constraint_per_company** - From stock: logistics_barcode_product_multi_barcode_constraint_per_company +- **odoo-bringout-oca-stock-logistics-barcode-product_multi_barcode_stock_menu** - From stock: logistics_barcode_product_multi_barcode_stock_menu +- **odoo-bringout-oca-stock-logistics-barcode-product_packaging_multi_barcode** - From stock: logistics_barcode_product_packaging_multi_barcode +- **odoo-bringout-oca-stock-logistics-barcode-stock_barcodes** - From stock: logistics_barcode_stock_barcodes +- **odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch** - From stock: logistics_barcode_stock_barcodes_picking_batch +- **odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report** - From stock: logistics_barcode_stock_picking_product_barcode_report + + +## Installation + +Install any package from this category: + +```bash +# Install from local directory +pip install packages/oca-warehouse/PACKAGE_NAME/ + +# Install in development mode +pip install -e packages/oca-warehouse/PACKAGE_NAME/ + +# Using uv (recommended for speed) +uv add packages/oca-warehouse/PACKAGE_NAME/ +``` + +## Repository Structure + +Each package in this repository follows the standard Odoo addon structure: + +``` +oca-warehouse/ +├── odoo-bringout-oca-PROJECT-ADDON/ +│ ├── ADDON_NAME/ # Complete addon code +│ │ ├── __init__.py +│ │ ├── __manifest__.py +│ │ └── ... (models, views, etc.) +│ ├── pyproject.toml # Python package configuration +│ └── README.md # Package documentation +└── ... +``` + +## Contributing + +These packages are maintained as part of the [OCA (Odoo Community Association)](https://github.com/OCA) ecosystem. + +## License + +Each package maintains its original license as specified in the OCA repositories. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/README.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/README.md new file mode 100644 index 0000000..0f049b8 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/README.md @@ -0,0 +1,46 @@ +# Generate Barcodes (Abstract) + +Odoo addon: barcodes_generator_abstract + +## Installation + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract +``` + +## Dependencies + +This addon depends on: +- barcodes + +## Manifest Information + +- **Name**: Generate Barcodes (Abstract) +- **Version**: 16.0.3.1.0 +- **Category**: Tools +- **License**: AGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/stock-logistics-barcode](https://github.com/OCA/stock-logistics-barcode) branch 16.0, addon `barcodes_generator_abstract`. + +## License + +This package maintains the original AGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/README.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/README.rst new file mode 100644 index 0000000..ef31dfa --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/README.rst @@ -0,0 +1,204 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +============================ +Generate Barcodes (Abstract) +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:537901b8bc9e1b9e144eb0e0f12996612cbbc4d0a3f0af1eb9b8012ccb8a29d2 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--barcode-lightgray.png?logo=github + :target: https://github.com/OCA/stock-logistics-barcode/tree/16.0/barcodes_generator_abstract + :alt: OCA/stock-logistics-barcode +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/stock-logistics-barcode-16-0/stock-logistics-barcode-16-0-barcodes_generator_abstract + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-barcode&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for any Model. + +For example, if the barcode pattern is "20.....{NNNDD}": + +* the EAN13 code will begin with '20', +* followed by 5 digits (named *Barcode Base* in this module), +* followed by 5 others digits to define the variable price with 2 decimals, +* the last digit (the 13rd digit) is the control digit (i.e. the checksum). + +With this module, it is possible to: + +* Affect a pattern (barcode.rule) to a model + +* Define a Barcode base: + * manually, if the base of the barcode must be set by a user (typically an + internal code defined in your company). + * automatically by a sequence, if you want to let Odoo increment a + sequence (typical case of a customer number incrementation). + +* Generate a barcode, based on the defined pattern and the barcode base + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +This module use an extra python library named 'python-barcode' you should install +to make barcode generation works properly. + +``sudo pip install python-barcode`` + +Configuration +============= + +To configure this module, you need to: + +* Go to Settings / Technical / Sequences & Identifiers / Barcode Nomenclatures +* Select a Nomenclature +* Create or select a rule + +.. image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_nomenclature_form.png + +* For manual generation, set: + * 'Base set Manually' in 'Generate Type' + * Set the model + +.. image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_rule_form_manual.png + +* For automatic generation, set: + * 'Base managed by Sequence' in 'Generate Type' + * Set the model + * Generate a new sequence by button, or affect a existing one + +.. image:: https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_rule_form_sequence.png + +In all cases, padding will be computed automaticaly, based on the number +of '.' in the Barcode Pattern field. + +Usage +===== + +This module is an abstract module. You can configure Barcode Rule, but to +enable this feature, you need to install an extra module for a given model. +This repository provide 'barcodes_generator_product' and +'barcodes_generator_partner' module to generate barcode for product or partner +model. + +Alternatively, you can develop a custom module for a custom model. See +'Inheritance' parts. + +If you want to generate barcode for another model, you can create a custom +module that depend on 'barcodes_generator_abstract' and inherit your model +like that: + +.. code:: + + class MyModel(models.Model): + _name = 'my.model' + _inherit = ['my.model', 'barcode.generate.mixin'] + + class barcode_rule(models.Model): + _inherit = 'barcode.rule' + + generate_model = fields.Selection(selection_add=[('my.model', 'My Model')]) + +Eventually, you should inherit your model view adding buttons and fields. + +Note +~~~~ + +Your model should have a field 'barcode' defined. + +Known issues / Roadmap +====================== + +* On barcode.rule model, constraint and domain system could be set between + 'type' and 'generate_model' fields. +* Cache is being cleared in a constraint in `barcode.rule`. Mutating in a + constraint is bad practice & should be moved somewhere. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* GRAP +* La Louve +* LasLabs + +Contributors +~~~~~~~~~~~~ + +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Dave Lasley +* `Tecnativa `__: + + * Carlos Roca + +* `Ooops404 `__: + + * Ilyas + +Other credits +~~~~~~~~~~~~~ + +Images +~~~~~~ + +* Icon of the module is based on the Oxygen Team work and is under LGPL licence: + http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px + :target: https://github.com/legalsylvain + :alt: legalsylvain + +Current `maintainer `__: + +|maintainer-legalsylvain| + +This module is part of the `OCA/stock-logistics-barcode `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__init__.py new file mode 100644 index 0000000..83e553a --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__manifest__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__manifest__.py new file mode 100644 index 0000000..577abe3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright (C) 2014-Today GRAP (http://www.grap.coop) +# Copyright (C) 2016-Today La Louve (http://www.lalouve.net) +# Copyright (C) 2018 Komit (https://komit-consulting.com) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Generate Barcodes (Abstract)", + "summary": "Generate Barcodes for Any Models", + "version": "16.0.3.1.0", + "category": "Tools", + "author": "GRAP, La Louve, LasLabs, Odoo Community Association (OCA)", + "maintainers": ["legalsylvain"], + "website": "https://github.com/OCA/stock-logistics-barcode", + "license": "AGPL-3", + "depends": ["barcodes"], + "data": [ + "security/res_groups.xml", + "views/view_barcode_rule.xml", + "views/view_barcode_nomenclature.xml", + "views/menu.xml", + ], + "demo": ["demo/res_users.xml"], + "external_dependencies": {"python": ["python-barcode"]}, +} diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/demo/res_users.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/demo/res_users.xml new file mode 100644 index 0000000..6c781b7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/demo/res_users.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/am.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/am.po new file mode 100644 index 0000000..9143b4c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/am.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n" +"Language: am\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/barcodes_generator_abstract.pot b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/barcodes_generator_abstract.pot new file mode 100644 index 0000000..e2686d4 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/barcodes_generator_abstract.pot @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to" +" 'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/bs.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/bs.po new file mode 100644 index 0000000..a3a639c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/bs.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Automatsko generiranje" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Baza barkoda" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Generiranje barkoda" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Nomenklature barkodova" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Barkod pravilo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Baza upravljana sekvencijom" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Baza postavljena ručno" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Mixin generiranja barkoda" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Generiši barkodove" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to" +" 'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Model generiranja" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Tip generiranja" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Sekvenca generiranja" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "Ako je 'Tip generiranja' postavljen, spomenite model povezan s ovim pravilom." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "Bez generiranja" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Dopunjavanje" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Odaberite pravilo za generiranje barkoda" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Sekvenca - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/ca.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/ca.po new file mode 100644 index 0000000..214c37f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/ca.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/de.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/de.po new file mode 100644 index 0000000..7eed57e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/de.po @@ -0,0 +1,165 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2020-08-04 12:59+0000\n" +"Last-Translator: André Volksdorf \n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Automatische Generierung" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Strichcode Basis" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Strichcode Erstellung" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Strichcode-Nomenklaturen" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Strichcode-Regeln" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Anzeigename" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Zuletzt geändert am" + +#, fuzzy +#~ msgid "Sequence Id" +#~ msgstr "Reihenfolge" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/el_GR.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/el_GR.po new file mode 100644 index 0000000..376b3bf --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/el_GR.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/" +"el_GR/)\n" +"Language: el_GR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "Κωδικός" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/es.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/es.po new file mode 100644 index 0000000..1cbe013 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/es.po @@ -0,0 +1,211 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2023-09-03 13:35+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Permite generar el código de barras, incluyendo un número (una base) en el " +"código de barras final.\n" +"\n" +" - 'Base establecida manualmente' : El usuario debe establecer manualmente " +"el valor de la base del código de barras.\n" +" - 'Base gestionada por Secuencia': El sistema generará la base a través de " +"una secuencia" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Generación automática" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Base de los código de barras" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Generar código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Nomenclatura del código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Regla del código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Base gestionada por secuencia" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Base establecida manualmente" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" +"Márquelo para generar automáticamente una base y un código de barras si se " +"selecciona esta regla." + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Generar código de barras mixto" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Generar código de barras" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" +"Generar base solo se puede usar con la regla de código de barras con " +"'Generar tipo' establecido en 'Base gestionada por secuencia'" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Generar modelo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Generar tipo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Generación de secuencia" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" +"Si establece 'Generar tipo', mencione el modelo relacionado con esta regla." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" +"Si deja el campo de secuencia en blanco, se creará automáticamente una " +"secuencia cuando se guarde la regla de código de barras, basada en el " +"relleno del código de barras." + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "No generar" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Relleno" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Seleccione una regla para generar un código de barras" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Secuencia - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Este valor se utiliza para generar códigos de barras según la configuración " +"de la regla del código de barras." + +#~ msgid "" +#~ "Allow to generate barcode, including a number (a base) in the final " +#~ "barcode.\n" +#~ " 'Base Set Manually' : User should set manually the value of the barcode " +#~ "base\n" +#~ " 'Base managed by Sequence': User will use a button to generate a new " +#~ "base. This base will be generated by a sequence" +#~ msgstr "" +#~ "Permite generar código de barras, añadiendo un número (configurado en la " +#~ "base) en el código de barras final.\n" +#~ " 'Configurar base manualmente': el usuario debe configurar manualmente " +#~ "el valor de la base del código de barras\n" +#~ " 'Base gestionada por secuencia': El usuario utilizará un botón para " +#~ "generar una nueva base. Esta base será generada por una secuencia" + +#~ msgid "" +#~ "Check this to automatically generate a barcode upon creation of a new " +#~ "record in the mixed model." +#~ msgstr "" +#~ "Seleccione para generar automáticamente un código de barras al crear un " +#~ "nuevo registro en el modelo mixto." + +#, python-format +#~ msgid "" +#~ "Only one rule per model can be used for automatic barcode generation." +#~ msgstr "" +#~ "Solo se puede utilizar una regla por modelo para la generación automática " +#~ "de códigos de barras." + +#~ msgid "Display Name" +#~ msgstr "Nombre mostrado" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación en" + +#, fuzzy +#~ msgid "Sequence Id" +#~ msgstr "Secuencia" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fi.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fi.po new file mode 100644 index 0000000..eeae5c2 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fi.po @@ -0,0 +1,160 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Nimi" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Viimeksi muokattu" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fr.po new file mode 100644 index 0000000..bf65d05 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/fr.po @@ -0,0 +1,165 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-06 13:40+0000\n" +"PO-Revision-Date: 2023-06-06 13:40+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Autorise à générer des codes barre en incluant un numéro (base du code " +"barre) dans le code barre final.\n" +" 'Base indiquée manuellement' : L'utilisateur devra indiquer manuellement la " +"base du barcode\n" +" 'Base gérée via une séquence': L'utilisateur devra utiliser un boutton pour " +"générer une nouvelle base. Cette base sera générée par une séquence" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Génération Automatique" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Base du code Barre" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Génération d'un code barre" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Nomenclatures codes barres" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Règle de code barre" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Base gérée via une séquence" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Base indiquée manuellement" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" +"Cocher cette case pour générer automatiquement une base et un code barre si " +"cette règle est sélectionnée." + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Générer des codes barre" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Générer des codes barre" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" +"Générer une base de code barre peut être utilisée seulement si la règle de " +"code barre est de type 'gérée via une séquence'" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Type de génération" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Type de génération" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Séquence de génération" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" +"Si 'Générer Type' est défini, mentionnez le modèle associé à cette règle." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" +"Si vous laissez le champ séquence vide, une séquence sera créé " +"automatiquement quand la règle de code barre sera sauvegardée, avec une " +"configuration basée sur la structure du code barre." + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "Pas de génération" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Taille" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Sélectionner une règle pour génerer un code barre" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Séquence - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Cette valeur est utilisée pour générer un code barre en se basant sur le " +"paramétrage de la règle de code barre." diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/gl.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/gl.po new file mode 100644 index 0000000..8dbf538 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/gl.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr.po new file mode 100644 index 0000000..be1fede --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr.po @@ -0,0 +1,167 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-02 01:48+0000\n" +"PO-Revision-Date: 2017-12-02 01:48+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "" +#~ "Allow to generate barcode, including a number (a base) in the final " +#~ "barcode.\n" +#~ " 'Base Set Manually' : User should set manually the value of the barcode " +#~ "base\n" +#~ " 'Base managed by Sequence': User will use a button to generate a new " +#~ "base. This base will be generated by a sequence" +#~ msgstr "" +#~ "Omogućuje generiranje barkodova, uključujući broj(osnova) u finalnom " +#~ "barkodu.\n" +#~ "'Osnova postavljena ručno' : korisnik treba ručno postaviti vrijednost " +#~ "osnovice barkoda.\n" +#~ "'Osnova prema sekvenci' : korisnik će koristiti guzmb za generirnje nove " +#~ "osnove. Ta osnova će biti generirana iz sekvence." diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr_HR.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr_HR.po new file mode 100644 index 0000000..a1f2dc9 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/hr_HR.po @@ -0,0 +1,156 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-16 01:43+0000\n" +"PO-Revision-Date: 2017-02-16 01:43+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" +"hr_HR/)\n" +"Language: hr_HR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Naziv" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/it.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/it.po new file mode 100644 index 0000000..10df78e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/it.po @@ -0,0 +1,230 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2024-01-26 10:35+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Consente di generare un codice a barre, incluso un numero (una base) nel " +"codice a barre finale.\n" +"\n" +" 'Base impostata manualmente' : l'utente deve impostare manualmente il " +"valore della base del codice a barre\n" +" 'Base gestita da sequenza': l'utente utilizzerà un pulsante per generare " +"una nuova base. Questa base sarà generata da una sequenza" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Generazione Automatica" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Base codice a barre" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Generazione codici a barre" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Nomenclatura Codice a Barre" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Regola codice a barre" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Base gestita da Sequenza" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Base impostata Manualmente" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" +"Selezionare questa opzione per generare qutomaticamente una base e un codice " +"a barre se questa regola è selezionata." + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Genera Codice a barre" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Genera codici a barre" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" +"Genera base può essere utilizzato solo con la regola del codice a barre con " +"'Genera tipo' impostato su 'Base gestita da sequenza'" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Genera modello" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Genera tipo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Sequenza generazione" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" +"Se 'Genera tipo' è impostato, menzionare il modello relativo a questa regola." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" +"Se si lascia vuoto il campo sequenza, una sequenza verrà creata " +"automaticamente quando la regola codice a barre verrà salvata, in base al " +"riempimento del codice a barre." + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "Nessuna generazione" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Padding" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Selezionare una regola per generare il codice a barre" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Sequenza - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Questo valore è utilizzato per generare il codice a barre in accordo alle " +"impostazioni della regola del codice a barre." + +#~ msgid "" +#~ "Allow to generate barcode, including a number (a base) in the final " +#~ "barcode.\n" +#~ " 'Base Set Manually' : User should set manually the value of the barcode " +#~ "base\n" +#~ " 'Base managed by Sequence': User will use a button to generate a new " +#~ "base. This base will be generated by a sequence" +#~ msgstr "" +#~ "Consenti di generare un codice a barre, incluso un numero (a base) nel " +#~ "codice a barre finale.\n" +#~ " 'Base impostata manualmente' : L'utente deve impostare manualmente il " +#~ "valore della base del codice a barre\n" +#~ " 'Base gestita da Sequence': L'utente utilizzerà un pulsante per generare " +#~ "una nuova base. Questa base sarà generata da una sequenza" + +#~ msgid "" +#~ "Check this to automatically generate a barcode upon creation of a new " +#~ "record in the mixed model." +#~ msgstr "" +#~ "Spuntare questo per generare automaticamente un codice a barre al momento " +#~ "della creazione di un nuovo record nel modello misto." + +#, python-format +#~ msgid "" +#~ "Only one rule per model can be used for automatic barcode generation." +#~ msgstr "" +#~ "Solo una regola per modello può essere usata per la generazione " +#~ "automatica dei codici a barre." + +#~ msgid "Display Name" +#~ msgstr "Nome visualizzato" + +#~ msgid "Generate Sequence" +#~ msgstr "Genera Sequenza" + +#, python-format +#~ msgid "" +#~ "Generate Sequence is possible only if 'Generate Type' is set to 'Base " +#~ "managed by Sequence'" +#~ msgstr "" +#~ "Genera Sequenza è possibile solo se 'Genera Tipo' è impostato per 'Base " +#~ "gestita da sequenza'" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" + +#~ msgid "Partners" +#~ msgstr "Partner" + +#~ msgid "Products" +#~ msgstr "Prodotti" + +#~ msgid "Sequence Id" +#~ msgstr "ID Sequenza" + +#~ msgid "Stock Location" +#~ msgstr "Ubicazione Scorte" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl.po new file mode 100644 index 0000000..0f841e2 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl.po @@ -0,0 +1,157 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Te tonen naam" + +#~ msgid "Last Modified on" +#~ msgstr "Laatst bijgewerkt op" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl_NL.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl_NL.po new file mode 100644 index 0000000..2f61a61 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/nl_NL.po @@ -0,0 +1,168 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-07 15:18+0000\n" +"PO-Revision-Date: 2017-07-07 15:18+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Weergavenaam" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Laatst aangepast op" + +#, fuzzy +#~ msgid "Sequence Id" +#~ msgstr "Volgorde" + +#~ msgid "barcode.rule" +#~ msgstr "barcode.rule" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt.po new file mode 100644 index 0000000..6087f1c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_BR.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_BR.po new file mode 100644 index 0000000..f0702fa --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_BR.po @@ -0,0 +1,178 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2017 +# falexandresilva , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-07 15:18+0000\n" +"PO-Revision-Date: 2024-07-06 20:58+0000\n" +"Last-Translator: Rodrigo Sottomaior Macedo " +"\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" +"23907/pt_BR/)\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Permite gerar código de barras, incluindo um número (uma base) no código de " +"barras final.\n" +"\n" +" - 'Base Set Manually': O usuário deve definir manualmente o valor da base " +"do código de barras\n" +" - 'Base gerenciada por Sequência': Sistema irá gerar a base através de uma " +"sequência" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Geração Automática" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Base de código de barras" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Geração de código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Nomenclaturas de código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Regra do código de barras" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Base gerenciada por Sequencia" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Base definida manualmente" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" +"Marque isto para gerar automaticamente uma base e um código de barras se " +"esta regra estiver selecionada." + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Gerar mixin de código de barras" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Gerar códigos de barras" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" +"Gerar Base pode ser usado apenas com regra de código de barras com 'Gerar " +"Tipo' definido como 'Base gerenciada por Sequência'" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Gerar modelo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Gerar tipo" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Sequência de Geração" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" +"Se 'Gerar Tipo' estiver definido, mencione o modelo relacionado a esta regra." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" +"Se você deixar o campo de sequência em branco, uma sequência será criada " +"automaticamente quando a regra do código de barras for salva, com base no " +"preenchimento do código de barras." + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "Sem geração" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Preenchimento" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Selecione uma regra para gerar um código de barras" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Sequência - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Este valor é utilizado para gerar o código de barras de acordo com a " +"configuração da regra do código de barras." + +#~ msgid "ID" +#~ msgstr "Identificação" + +#~ msgid "Last Modified on" +#~ msgstr "Última atualização em" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_PT.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_PT.po new file mode 100644 index 0000000..f776cac --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/pt_PT.po @@ -0,0 +1,155 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2016-11-25 08:40+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/sl.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/sl.po new file mode 100644 index 0000000..637c751 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/sl.po @@ -0,0 +1,165 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2020-08-11 16:59+0000\n" +"Last-Translator: Matjaz Mozetic \n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 3.10\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" + +#~ msgid "Display Name" +#~ msgstr "Prikazni naziv" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Zadnjič spremenjeno" + +#~ msgid "Sequence Id" +#~ msgstr "ID zaporedja" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/tr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/tr.po new file mode 100644 index 0000000..384df9c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/tr.po @@ -0,0 +1,169 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-25 08:40+0000\n" +"PO-Revision-Date: 2025-02-20 11:06+0000\n" +"Last-Translator: İsmail Çağan Yılmaz \n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Son barkodda bir sayı (bir baz) dahil olmak üzere barkod oluşturmaya izin " +"verin.\n" +"\n" +" - 'Baz Manuel Olarak Ayarlandı' : Kullanıcı barkod tabanının değerini " +"manuel olarak ayarlamalıdır\n" +" - 'Baz Dizi kullanarak ayarlandı': Sistem, bazı bir dizi aracılığıyla " +"oluşturacaktır" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "Otomatik Oluşturma" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "Baz Barkod" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "Barkod Oluşturma" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "Barkod İsimlendirmeleri" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "Barkod Kuralı" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "Baz Dizi kullanarak ayarlandı" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "Baz Manuel Olarak Ayarlandı" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" +"Bu kural seçilirse otomatik olarak bir baz ve barkod oluşturmak için bunu " +"işaretleyin." + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "Barkod Oluşturma Birleştirim" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "Barkodları Oluştur" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" +"Baz Oluşturma yalnızca 'Tür Oluştur'un 'Baz Dizi kullanarak ayarlandı' " +"olarak ayarlandığı barkod kuralıyla kullanılabilir" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Model Oluştur" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "Tür Oluştur" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "Dizi Oluştur" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "'Tür Oluştur' ayarlanmışsa bu kuralla ilgili modeli belirtin." + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" +"Dizi alanını boş bırakırsanız, barkod kuralı kaydedildiğinde barkodun " +"tasarımına göre otomatik olarak bir sıra oluşturulacaktır." + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "Oluşturma yok" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "Tasarım" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Barkod oluşturmak için bir kural seçin" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "Dizi - %s" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Bu değer, barkod kuralının ayarına göre barkod oluşturmak için kullanılır." + +#~ msgid "ID" +#~ msgstr "ID" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/zh_CN.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/zh_CN.po new file mode 100644 index 0000000..24bd012 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/i18n/zh_CN.po @@ -0,0 +1,147 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_abstract +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "Automatic Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "Barcode Generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.ui.menu,name:barcodes_generator_abstract.menu_barcode_rule +msgid "Barcode Nomenclatures" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__sequence +msgid "Base managed by Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__manual +msgid "Base set Manually" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_automate +msgid "" +"Check this to automatically generate a base and a barcode if this rule is " +"selected." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model,name:barcodes_generator_abstract.model_barcode_generate_mixin +msgid "Generate Barcode Mixin" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:res.groups,name:barcodes_generator_abstract.generate_barcode +msgid "Generate Barcodes" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_generate_mixin.py:0 +#, python-format +msgid "" +"Generate Base can be used only with barcode rule with 'Generate Type' set to " +"'Base managed by Sequence'" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_generate_mixin__generate_type +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__sequence_id +msgid "Generation Sequence" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_abstract +#: model_terms:ir.ui.view,arch_db:barcodes_generator_abstract.view_barcode_rule_form +msgid "" +"If you leave the sequence field blank, a sequence will be created " +"automatically when the barcode rule is saved, based on the padding of the " +"barcode." +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields.selection,name:barcodes_generator_abstract.selection__barcode_rule__generate_type__no +msgid "No generation" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,field_description:barcodes_generator_abstract.field_barcode_rule__padding +msgid "Padding" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_abstract +#. odoo-python +#: code:addons/barcodes_generator_abstract/models/barcode_rule.py:0 +#, python-format +msgid "Sequence - %s" +msgstr "" + +#. module: barcodes_generator_abstract +#: model:ir.model.fields,help:barcodes_generator_abstract.field_barcode_generate_mixin__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/__init__.py new file mode 100644 index 0000000..757ecf3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import barcode_generate_mixin +from . import barcode_rule diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_generate_mixin.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_generate_mixin.py new file mode 100644 index 0000000..59ea1aa --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_generate_mixin.py @@ -0,0 +1,110 @@ +# Copyright (C) 2014-TODAY GRAP (http://www.grap.coop) +# Copyright (C) 2016-TODAY La Louve (http://www.lalouve.net) +# Copyright 2017 LasLabs Inc. +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import barcode + +from odoo import _, api, exceptions, fields, models + + +class BarcodeGenerateMixin(models.AbstractModel): + _name = "barcode.generate.mixin" + _description = "Generate Barcode Mixin" + + # Column Section + barcode_rule_id = fields.Many2one( + string="Barcode Rule", + comodel_name="barcode.rule", + help="Select a rule to generate a barcode", + ) + + barcode_base = fields.Integer( + copy=False, + help="This value is used to generate barcode" + " according to the setting of the barcode rule.", + ) + + generate_type = fields.Selection( + related="barcode_rule_id.generate_type", + ) + + @api.model_create_multi + def create(self, vals_list): + """It creates a new barcode if automation is active.""" + records = super().create(vals_list) + for rec in records: + rule = rec.barcode_rule_id + if rule and rule.generate_automate and rule.generate_type == "sequence": + rec.generate_base() + if not rec.barcode: + rec.generate_barcode() + return records + + def write(self, vals): + """Generate new barcodes if a barcode rule with automation + is applied.""" + res = super().write(vals) + if vals.get("barcode_rule_id"): + rule = self.env["barcode.rule"].browse(vals["barcode_rule_id"]) + if rule.generate_automate and rule.generate_type == "sequence": + for rec in self: + rec.generate_base() + if not rec.barcode: + rec.generate_barcode() + return res + + # View Section + def generate_base(self): + """Generate a base barcode, based on sequence, if the item + has no barcode defined. + Raise an exception if the generate_type of the barcode rule + is not set to 'sequence'.""" + for item in self.filtered(lambda x: not x.barcode_base): + if item.generate_type != "sequence": + raise exceptions.UserError( + _( + "Generate Base can be used only with barcode rule with" + " 'Generate Type' set to 'Base managed by Sequence'" + ) + ) + else: + item.barcode_base = item.barcode_rule_id.sequence_id.next_by_id() + + def generate_barcode(self): + for item in self: + padding = item.barcode_rule_id.padding + str_base = str(item.barcode_base).rjust(padding, "0") + custom_code = self._get_custom_barcode(item) + if custom_code: + custom_code = custom_code.replace("." * padding, str_base) + barcode_class = barcode.get_barcode_class(item.barcode_rule_id.encoding) + item.barcode = barcode_class(custom_code).get_fullcode() + + # Custom Section + @api.model + def _get_custom_barcode(self, item): + """ + If the pattern is '23.....{NNNDD}' + this function will return '23.....00000' + Note : Overload _get_replacement_char to have another char + instead that replace 'N' and 'D' char. + """ + if not item.barcode_rule_id: + return False + + # Define barcode + custom_code = item.barcode_rule_id.pattern + custom_code = custom_code.replace("{", "").replace("}", "") + custom_code = custom_code.replace("D", self._get_replacement_char("D")) + return custom_code.replace("N", self._get_replacement_char("N")) + + @api.model + def _get_replacement_char(self, char): + """ + Can be overload by inheritance + Define wich character will be used instead of the 'N' or the 'D' + char, present in the pattern of the barcode_rule_id + """ + return "0" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_rule.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_rule.py new file mode 100644 index 0000000..56451e6 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/models/barcode_rule.py @@ -0,0 +1,90 @@ +# Copyright (C) 2014-Today GRAP (http://www.grap.coop) +# Copyright (C) 2016-Today La Louve (http://www.lalouve.net) +# Copyright 2017 LasLabs Inc. +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import _, api, fields, models + +_GENERATE_TYPE = [ + ("no", "No generation"), + ("manual", "Base set Manually"), + ("sequence", "Base managed by Sequence"), +] + + +class BarcodeRule(models.Model): + + _inherit = "barcode.rule" + + # Column Section + generate_type = fields.Selection( + selection=_GENERATE_TYPE, + required=True, + default="no", + help="Allow to generate barcode, including a number" + " (a base) in the final barcode.\n\n" + " - 'Base Set Manually' : User should set manually the value of the" + " barcode base\n" + " - 'Base managed by Sequence': System will generate the base" + " via a sequence", + ) + + generate_model = fields.Selection( + selection=[], + help="If 'Generate Type' is set, mention the model related to this rule.", + ) + + padding = fields.Integer(compute="_compute_padding", readonly=True, store=True) + + sequence_id = fields.Many2one( + string="Generation Sequence", comodel_name="ir.sequence" + ) + + generate_automate = fields.Boolean( + string="Automatic Generation", + help="Check this to automatically generate a base and a barcode" + " if this rule is selected.", + ) + + # Compute Section + @api.depends("pattern") + def _compute_padding(self): + for rule in self: + rule.padding = rule.pattern.count(".") + + # On Change Section + @api.onchange("generate_type") + def onchange_generate_type(self): + for rule in self: + if rule.generate_type == "no": + rule.generate_model = False + + # CRUD + @api.model_create_multi + def create(self, vals_list): + res = super().create(vals_list) + res.generate_sequence_if_required() + return res + + def write(self, vals): + res = super().write(vals) + self.generate_sequence_if_required() + return res + + def generate_sequence_if_required(self): + IrSequence = self.env["ir.sequence"] + rules = self.filtered( + lambda x: x.generate_type == "sequence" and not x.sequence_id + ) + for rule in rules: + sequence = IrSequence.create(self._prepare_sequence(rule)) + rule.sequence_id = sequence.id + + # Custom Section + @api.model + def _prepare_sequence(self, rule): + return { + "name": _("Sequence - %s") % rule.name, + "padding": rule.padding, + } diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONFIGURE.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONFIGURE.rst new file mode 100644 index 0000000..c7a749e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONFIGURE.rst @@ -0,0 +1,23 @@ +To configure this module, you need to: + +* Go to Settings / Technical / Sequences & Identifiers / Barcode Nomenclatures +* Select a Nomenclature +* Create or select a rule + +.. image:: ../static/description/barcode_nomenclature_form.png + +* For manual generation, set: + * 'Base set Manually' in 'Generate Type' + * Set the model + +.. image:: ../static/description/barcode_rule_form_manual.png + +* For automatic generation, set: + * 'Base managed by Sequence' in 'Generate Type' + * Set the model + * Generate a new sequence by button, or affect a existing one + +.. image:: ../static/description/barcode_rule_form_sequence.png + +In all cases, padding will be computed automaticaly, based on the number +of '.' in the Barcode Pattern field. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONTRIBUTORS.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..4b79241 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CONTRIBUTORS.rst @@ -0,0 +1,9 @@ +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Dave Lasley +* `Tecnativa `__: + + * Carlos Roca + +* `Ooops404 `__: + + * Ilyas diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CREDITS.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CREDITS.rst new file mode 100644 index 0000000..05d4062 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/CREDITS.rst @@ -0,0 +1,5 @@ +Images +~~~~~~ + +* Icon of the module is based on the Oxygen Team work and is under LGPL licence: + http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/DESCRIPTION.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/DESCRIPTION.rst new file mode 100644 index 0000000..8175f69 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/DESCRIPTION.rst @@ -0,0 +1,21 @@ +This module extends Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for any Model. + +For example, if the barcode pattern is "20.....{NNNDD}": + +* the EAN13 code will begin with '20', +* followed by 5 digits (named *Barcode Base* in this module), +* followed by 5 others digits to define the variable price with 2 decimals, +* the last digit (the 13rd digit) is the control digit (i.e. the checksum). + +With this module, it is possible to: + +* Affect a pattern (barcode.rule) to a model + +* Define a Barcode base: + * manually, if the base of the barcode must be set by a user (typically an + internal code defined in your company). + * automatically by a sequence, if you want to let Odoo increment a + sequence (typical case of a customer number incrementation). + +* Generate a barcode, based on the defined pattern and the barcode base diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/INSTALL.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/INSTALL.rst new file mode 100644 index 0000000..2ce690c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/INSTALL.rst @@ -0,0 +1,4 @@ +This module use an extra python library named 'python-barcode' you should install +to make barcode generation works properly. + +``sudo pip install python-barcode`` diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/ROADMAP.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/ROADMAP.rst new file mode 100644 index 0000000..52df172 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/ROADMAP.rst @@ -0,0 +1,4 @@ +* On barcode.rule model, constraint and domain system could be set between + 'type' and 'generate_model' fields. +* Cache is being cleared in a constraint in `barcode.rule`. Mutating in a + constraint is bad practice & should be moved somewhere. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/USAGE.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/USAGE.rst new file mode 100644 index 0000000..0c4d724 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/readme/USAGE.rst @@ -0,0 +1,30 @@ +This module is an abstract module. You can configure Barcode Rule, but to +enable this feature, you need to install an extra module for a given model. +This repository provide 'barcodes_generator_product' and +'barcodes_generator_partner' module to generate barcode for product or partner +model. + +Alternatively, you can develop a custom module for a custom model. See +'Inheritance' parts. + +If you want to generate barcode for another model, you can create a custom +module that depend on 'barcodes_generator_abstract' and inherit your model +like that: + +.. code:: + + class MyModel(models.Model): + _name = 'my.model' + _inherit = ['my.model', 'barcode.generate.mixin'] + + class barcode_rule(models.Model): + _inherit = 'barcode.rule' + + generate_model = fields.Selection(selection_add=[('my.model', 'My Model')]) + +Eventually, you should inherit your model view adding buttons and fields. + +Note +~~~~ + +Your model should have a field 'barcode' defined. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/security/res_groups.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/security/res_groups.xml new file mode 100644 index 0000000..6b9f3be --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/security/res_groups.xml @@ -0,0 +1,16 @@ + + + + + Generate Barcodes + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_nomenclature_form.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_nomenclature_form.png new file mode 100644 index 0000000..4a921ef Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_nomenclature_form.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_manual.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_manual.png new file mode 100644 index 0000000..9f4c426 Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_manual.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_sequence.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_sequence.png new file mode 100644 index 0000000..25bfaeb Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/barcode_rule_form_sequence.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/icon.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/icon.png new file mode 100644 index 0000000..f3533a2 Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/icon.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/index.html b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/index.html new file mode 100644 index 0000000..15d524d --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/static/description/index.html @@ -0,0 +1,565 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Generate Barcodes (Abstract)

+ +

Beta License: AGPL-3 OCA/stock-logistics-barcode Translate me on Weblate Try me on Runboat

+

This module extends Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for any Model.

+

For example, if the barcode pattern is “20…..{NNNDD}”:

+
    +
  • the EAN13 code will begin with ‘20’,
  • +
  • followed by 5 digits (named Barcode Base in this module),
  • +
  • followed by 5 others digits to define the variable price with 2 decimals,
  • +
  • the last digit (the 13rd digit) is the control digit (i.e. the checksum).
  • +
+

With this module, it is possible to:

+
    +
  • Affect a pattern (barcode.rule) to a model
  • +
  • +
    Define a Barcode base:
    +
      +
    • manually, if the base of the barcode must be set by a user (typically an +internal code defined in your company).
    • +
    • automatically by a sequence, if you want to let Odoo increment a +sequence (typical case of a customer number incrementation).
    • +
    +
    +
    +
  • +
  • Generate a barcode, based on the defined pattern and the barcode base
  • +
+

Table of contents

+ +
+

Installation

+

This module use an extra python library named ‘python-barcode’ you should install +to make barcode generation works properly.

+

sudo pip install python-barcode

+
+
+

Configuration

+

To configure this module, you need to:

+
    +
  • Go to Settings / Technical / Sequences & Identifiers / Barcode Nomenclatures
  • +
  • Select a Nomenclature
  • +
  • Create or select a rule
  • +
+https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_nomenclature_form.png +
    +
  • +
    For manual generation, set:
    +
      +
    • ‘Base set Manually’ in ‘Generate Type’
    • +
    • Set the model
    • +
    +
    +
    +
  • +
+https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_rule_form_manual.png +
    +
  • +
    For automatic generation, set:
    +
      +
    • ‘Base managed by Sequence’ in ‘Generate Type’
    • +
    • Set the model
    • +
    • Generate a new sequence by button, or affect a existing one
    • +
    +
    +
    +
  • +
+https://raw.githubusercontent.com/OCA/stock-logistics-barcode/16.0/barcodes_generator_abstract/static/description/barcode_rule_form_sequence.png +

In all cases, padding will be computed automaticaly, based on the number +of ‘.’ in the Barcode Pattern field.

+
+
+

Usage

+

This module is an abstract module. You can configure Barcode Rule, but to +enable this feature, you need to install an extra module for a given model. +This repository provide ‘barcodes_generator_product’ and +‘barcodes_generator_partner’ module to generate barcode for product or partner +model.

+

Alternatively, you can develop a custom module for a custom model. See +‘Inheritance’ parts.

+

If you want to generate barcode for another model, you can create a custom +module that depend on ‘barcodes_generator_abstract’ and inherit your model +like that:

+
+class MyModel(models.Model):
+    _name = 'my.model'
+    _inherit = ['my.model', 'barcode.generate.mixin']
+
+class barcode_rule(models.Model):
+    _inherit = 'barcode.rule'
+
+    generate_model = fields.Selection(selection_add=[('my.model', 'My Model')])
+
+

Eventually, you should inherit your model view adding buttons and fields.

+
+

Note

+

Your model should have a field ‘barcode’ defined.

+
+
+
+

Known issues / Roadmap

+
    +
  • On barcode.rule model, constraint and domain system could be set between +‘type’ and ‘generate_model’ fields.
  • +
  • Cache is being cleared in a constraint in barcode.rule. Mutating in a +constraint is bad practice & should be moved somewhere.
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
  • La Louve
  • +
  • LasLabs
  • +
+
+
+

Contributors

+ +
+ +
+

Images

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

legalsylvain

+

This module is part of the OCA/stock-logistics-barcode project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/__init__.py new file mode 100644 index 0000000..c24e006 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/__init__.py @@ -0,0 +1 @@ +from . import test_barcodes_generator_abstract diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/models.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/models.py new file mode 100644 index 0000000..ae7fd9b --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/models.py @@ -0,0 +1,24 @@ +# Copyright 2021 Tecnativa - Carlos Roca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + +# pylint: disable=consider-merging-classes-inherited + + +class BarcodeRuleUserFake(models.Model): + _inherit = "barcode.rule" + + generate_model = fields.Selection( + selection_add=[("res.users", "Users")], ondelete={"res.users": "cascade"} + ) + + type = fields.Selection( + selection_add=[("user", "User")], ondelete={"user": "cascade"} + ) + + +class BarcodeGeneratorUserFake(models.Model): + _name = "res.users" + _inherit = ["res.users", "barcode.generate.mixin"] + + barcode = fields.Char(copy=False) diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/test_barcodes_generator_abstract.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/test_barcodes_generator_abstract.py new file mode 100644 index 0000000..d84e832 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/tests/test_barcodes_generator_abstract.py @@ -0,0 +1,102 @@ +# Copyright 2021 Tecnativa - Carlos Roca +# Copyright 2023-Today GRAP (http://www.grap.coop) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo_test_helper import FakeModelLoader + +from odoo.exceptions import UserError +from odoo.tests import TransactionCase + + +class TestBarcodesGeneratorAbstract(TransactionCase, FakeModelLoader): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.loader = FakeModelLoader(cls.env, cls.__module__) + cls.loader.backup_registry() + from .models import BarcodeGeneratorUserFake, BarcodeRuleUserFake + + cls.loader.update_registry( + ( + BarcodeGeneratorUserFake, + BarcodeRuleUserFake, + ) + ) + cls.barcode_rule_fake = cls.env["barcode.rule"].create( + { + "name": "User rule", + "barcode_nomenclature_id": cls.env.ref( + "barcodes.default_barcode_nomenclature" + ).id, + "type": "user", + "sequence": 999, + "encoding": "ean13", + "pattern": "20.....{NNNDD}", + "generate_type": "manual", + "generate_model": "res.users", + } + ) + cls.user_fake = cls.env["res.users"].create( + { + "name": "Test user", + "login": "testing_01", + } + ) + + @classmethod + def tearDownClass(cls): + cls.loader.restore_registry() + super().tearDownClass() + + def test_generate_sequence_manually(self): + self.user_fake.barcode_rule_id = self.barcode_rule_fake + self.assertFalse(self.user_fake.barcode_base) + self.assertFalse(self.user_fake.barcode) + + with self.assertRaises(UserError): + self.user_fake.generate_base() + + self.user_fake.generate_barcode() + self.assertEqual( + self.user_fake.barcode, + "2000000000008", + ) + self.user_fake.barcode_base = 10 + self.user_fake.generate_barcode() + self.assertEqual( + self.user_fake.barcode, + "2000010000005", + ) + + def test_generate_sequence_sequence(self): + self.barcode_rule_fake.generate_type = "sequence" + self.assertTrue(self.barcode_rule_fake.sequence_id) + + self.user_fake.barcode_rule_id = self.barcode_rule_fake + self.assertFalse(self.user_fake.barcode_base) + self.assertFalse(self.user_fake.barcode) + + self.user_fake.generate_base() + self.assertEqual(self.user_fake.barcode_base, 1) + self.assertFalse(self.user_fake.barcode) + + self.user_fake.generate_barcode() + self.assertEqual(self.user_fake.barcode, "2000001000007") + + self.user_fake.barcode_base = False + self.user_fake.generate_base() + self.assertEqual(self.user_fake.barcode_base, 2) + self.user_fake.generate_barcode() + self.assertEqual(self.user_fake.barcode, "2000002000006") + + def test_generate_sequence_sequence_automate(self): + self.barcode_rule_fake.write( + { + "generate_type": "sequence", + "generate_automate": True, + } + ) + self.assertTrue(self.barcode_rule_fake.sequence_id) + + self.user_fake.barcode_rule_id = self.barcode_rule_fake + self.assertEqual(self.user_fake.barcode_base, 1) + self.assertEqual(self.user_fake.barcode, "2000001000007") diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/menu.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/menu.xml new file mode 100644 index 0000000..d155e62 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/menu.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_nomenclature.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_nomenclature.xml new file mode 100644 index 0000000..cf0a7eb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_nomenclature.xml @@ -0,0 +1,32 @@ + + + + + barcode.nomenclature + + + + + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_rule.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_rule.xml new file mode 100644 index 0000000..283222b --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/barcodes_generator_abstract/views/view_barcode_rule.xml @@ -0,0 +1,55 @@ + + + + + barcode.rule + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/ARCHITECTURE.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/ARCHITECTURE.md new file mode 100644 index 0000000..21808cb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Barcodes_generator_abstract Module - barcodes_generator_abstract + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONFIGURATION.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONFIGURATION.md new file mode 100644 index 0000000..5cc9942 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for barcodes_generator_abstract. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONTROLLERS.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/DEPENDENCIES.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/DEPENDENCIES.md new file mode 100644 index 0000000..717eb37 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [barcodes](../../odoo-bringout-oca-ocb-barcodes) diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/FAQ.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/FAQ.md new file mode 100644 index 0000000..b905819 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon barcodes_generator_abstract or install in UI. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/INSTALL.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/INSTALL.md new file mode 100644 index 0000000..02c72b3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract" +# or +uv pip install odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract" +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/MODELS.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/MODELS.md new file mode 100644 index 0000000..092977f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/MODELS.md @@ -0,0 +1,13 @@ +# Models + +Detected core models and extensions in barcodes_generator_abstract. + +```mermaid +classDiagram + class barcode_generate_mixin + class barcode_rule +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/OVERVIEW.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/OVERVIEW.md new file mode 100644 index 0000000..6054271 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: barcodes_generator_abstract. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon barcodes_generator_abstract +- License: LGPL-3 diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/REPORTS.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/SECURITY.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/SECURITY.md new file mode 100644 index 0000000..b18a9ff --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/SECURITY.md @@ -0,0 +1,74 @@ +# Security + +Access control and security definitions in barcodes_generator_abstract. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[all_odoo_addons_repos.txt](../all_odoo_addons_repos.txt)** + - 318 model access rules +- **[bosnian_translations.json](../bosnian_translations.json)** + - 50 model access rules +- **[bosnian_translations_output.json](../bosnian_translations_output.json)** + - 444 model access rules +- **[CHANGELOG.md](../CHANGELOG.md)** + - 132 model access rules +- **[delete_all_odoo_addons.sh](../delete_all_odoo_addons.sh)** + - 50 model access rules +- **[delete_odoo_addons.sh](../delete_odoo_addons.sh)** + - 44 model access rules +- **[doc](../doc)** +- **[docker](../docker)** +- **[input](../input)** +- **[nix](../nix)** +- **[odoo.conf](../odoo.conf)** + - 58 model access rules +- **[odoo_packages_bez_l10n.txt](../odoo_packages_bez_l10n.txt)** + - 1947 model access rules +- **[odoo_packages_bringout.txt](../odoo_packages_bringout.txt)** + - 1947 model access rules +- **[odoo_packages.txt](../odoo_packages.txt)** + - 2085 model access rules +- **[output](../output)** +- **[packages](../packages)** +- **[PACKAGES.md](../PACKAGES.md)** + - 298 model access rules +- **[README.md](../README.md)** + - 338 model access rules +- **[scripts](../scripts)** +- **[temp](../temp)** +- **[TRANSLATION_BS_SUMMARY.md](../TRANSLATION_BS_SUMMARY.md)** + - 146 model access rules +- **[verify_deletions.sh](../verify_deletions.sh)** + - 55 model access rules + +## Record Rules + +Row-level security rules defined in: + +## Security Groups & Configuration + +Security groups and permissions defined in: +- **[res_groups.xml](../barcodes_generator_abstract/security/res_groups.xml)** + - 1 security groups defined + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[res_groups.xml](../barcodes_generator_abstract/security/res_groups.xml)** + - Security groups, categories, and XML-based rules + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/USAGE.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/USAGE.md new file mode 100644 index 0000000..68b6f81 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon barcodes_generator_abstract +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/WIZARDS.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/pyproject.toml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/pyproject.toml new file mode 100644 index 0000000..5b03327 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_abstract" +version = "16.0.0" +description = "Generate Barcodes (Abstract) - Generate Barcodes for Any Models" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-stock-logistics-barcode-barcodes>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["barcodes_generator_abstract"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/README.md b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/README.md new file mode 100644 index 0000000..84e85bf --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/README.md @@ -0,0 +1,47 @@ +# Generate Barcodes for Stock Locations + +Odoo addon: barcodes_generator_location + +## Installation + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location +``` + +## Dependencies + +This addon depends on: +- barcodes_generator_abstract +- stock + +## Manifest Information + +- **Name**: Generate Barcodes for Stock Locations +- **Version**: 16.0.1.0.0 +- **Category**: Tools +- **License**: AGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/stock-logistics-barcode](https://github.com/OCA/stock-logistics-barcode) branch 16.0, addon `barcodes_generator_location`. + +## License + +This package maintains the original AGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/README.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/README.rst new file mode 100644 index 0000000..8685f10 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/README.rst @@ -0,0 +1,130 @@ +===================================== +Generate Barcodes for Stock Locations +===================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:6aaeee640999db99f4f6d879b9c42e9626848385af8d2315cff1c6590df316ae + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--barcode-lightgray.png?logo=github + :target: https://github.com/OCA/stock-logistics-barcode/tree/16.0/barcodes_generator_location + :alt: OCA/stock-logistics-barcode +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/stock-logistics-barcode-16-0/stock-logistics-barcode-16-0-barcodes_generator_location + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-barcode&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module expands Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for Stock Locations. + +For example, a typical pattern for partners is "042........." that means +that: +* the EAN13 code will begin by '042' +* followed by 0 digits (named Barcode Base in this module) +* a 13 digit control + +With this module, it is possible to: + +* Assign a pattern (barcode.rule) to a stock.location + +* Define a Barcode base: + * manually, if the base of the barcode must be set by a user. (typically an + internal code defined in your company) + * automatically by a sequence, if you want to let Odoo to increment a + sequence. (typical case of a customer number incrementation) + +* Generate a barcode, based on the defined pattern and the barcode base + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, see the 'Configuration' Section of the description +of the module 'barcodes_generator_abstract' + +Usage +===== + +To use this module, you need to: + +* Go to a Stock Location form + +1 for manual generation + * Set a Barcode Rule + * Set a Barcode Base + * click on the button 'Generate Barcode (Using Barcode Rule)' + +2 for automatic generation + * Set a Barcode Rule + * click on the button 'Generate Base (Using Sequence)' + * click on the button 'Generate Barcode (Using Barcode Rule)' + +.. image:: https://raw.githubusercontent.com/barcodes_generator/static/description/stock_location_sequence_generation.png + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* LasLabs + +Contributors +~~~~~~~~~~~~ + +* Dave Lasley +* `Tecnativa `_: + + * David Vidal + * Ernesto Tejeda + +Other credits +~~~~~~~~~~~~~ + +* Icon of the module is based on the Oxygen Team work and is under LGPL licence: + http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/stock-logistics-barcode `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__init__.py new file mode 100644 index 0000000..071962a --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__init__.py @@ -0,0 +1,2 @@ +from . import models +from .hooks import uninstall_hook diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__manifest__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__manifest__.py new file mode 100644 index 0000000..c6b8868 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2017 LasLabs Inc. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Generate Barcodes for Stock Locations", + "version": "16.0.1.0.0", + "category": "Tools", + "author": "LasLabs, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/stock-logistics-barcode", + "license": "AGPL-3", + "depends": ["barcodes_generator_abstract", "stock"], + "data": ["views/stock_location.xml"], + "demo": [ + "demo/ir_sequence.xml", + "demo/barcode_rule.xml", + "demo/stock_location.xml", + "demo/function.xml", + ], + "uninstall_hook": "uninstall_hook", +} diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/barcode_rule.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/barcode_rule.xml new file mode 100644 index 0000000..de39432 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/barcode_rule.xml @@ -0,0 +1,21 @@ + + + + + Stock Location Rule (Generated Barcode) + + location + 998 + ean13 + 119......... + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/function.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/function.xml new file mode 100644 index 0000000..7c37c82 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/function.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/ir_sequence.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/ir_sequence.xml new file mode 100644 index 0000000..cc50aab --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/ir_sequence.xml @@ -0,0 +1,12 @@ + + + + + Stock Location Sequence (Generated Barcode) + 10 + 1 + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/stock_location.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/stock_location.xml new file mode 100644 index 0000000..44a272d --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/demo/stock_location.xml @@ -0,0 +1,12 @@ + + + + + Location with Generated Barcode + + internal + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/hooks.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/hooks.py new file mode 100644 index 0000000..08a914e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/hooks.py @@ -0,0 +1,13 @@ +# Copyright 2020 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + + +def uninstall_hook(cr, registry): + """Delete barcode rules with generate model `stock.location` as they + won't be useful anymore""" + cr.execute( + """ + DELETE FROM barcode_rule + WHERE generate_model = 'stock.location' + """ + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/barcodes_generator_location.pot b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/barcodes_generator_location.pot new file mode 100644 index 0000000..b87669f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/barcodes_generator_location.pot @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/bs.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/bs.po new file mode 100644 index 0000000..a4c9e79 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/bs.po @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "Barkod" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "Baza barkoda" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "Barkod pravilo" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "Generiraj barkodove" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Generiraj osnovno ( koristi br.krug)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Model generiranja" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "Tip generiranja" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "Ako je 'Tip generiranja' postavljen, spomenite model povezan s ovim pravilom." + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Odaberite pravilo za generiranje barkoda" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "Lokacija zalihe" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/es.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/es.po new file mode 100644 index 0000000..16507ef --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/es.po @@ -0,0 +1,89 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +# Translators: +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-15 02:01+0000\n" +"PO-Revision-Date: 2018-02-15 02:01+0000\n" +"Last-Translator: enjolras , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "Generar Código de Barras" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Generar Base (utilizando secuencia)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "Ubicación de existencias" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/fr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/fr.po new file mode 100644 index 0000000..19a403d --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/fr.po @@ -0,0 +1,89 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-12 02:40+0000\n" +"PO-Revision-Date: 2017-04-12 02:40+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Générer une base (via une séquence)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/hr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/hr.po new file mode 100644 index 0000000..a563ead --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/hr.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +# Translators: +# Bole , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-15 02:01+0000\n" +"PO-Revision-Date: 2018-02-15 02:01+0000\n" +"Last-Translator: Bole , 2018\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "Generiraj barkodove" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Generiraj osnovno ( koristi br.krug)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "Lokacija zalihe" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/it.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/it.po new file mode 100644 index 0000000..c50c40e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/it.po @@ -0,0 +1,96 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-04-02 11:43+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Consente di generare un codice a barre, incluso un numero (una base) nel " +"codice a barre finale.\n" +"\n" +" 'Base impostata manualmente' : l'utente deve impostare manualmente il " +"valore della base del codice a barre\n" +" 'Base gestita da sequenza': l'utente utilizzerà un pulsante per generare " +"una nuova base. Questa base sarà generata da una sequenza" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "Codice a barre" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "Base codice a barre" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "Regola codice a barre" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "Genera codice a barre" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Genera base (usando sequenza)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Modello generazione" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "Tipo generazione" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" +"Se 'Tipo generazione' è impostato, indica il modello relativo a questa " +"regola." + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Seleziona una regola per generare il barcode" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "Ubicazione" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Questo valore è usato per generare un codice a barre in base alle " +"impostazione della regola." diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/nl_NL.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/nl_NL.po new file mode 100644 index 0000000..e474b31 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/nl_NL.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-07 15:18+0000\n" +"PO-Revision-Date: 2017-07-07 15:18+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final " +"barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode " +"base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/tr.po b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/tr.po new file mode 100644 index 0000000..d66b792 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/i18n/tr.po @@ -0,0 +1,93 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * barcodes_generator_location +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-02-20 11:06+0000\n" +"Last-Translator: İsmail Çağan Yılmaz \n" +"Language-Team: none\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__generate_type +msgid "" +"Allow to generate barcode, including a number (a base) in the final barcode.\n" +"\n" +" - 'Base Set Manually' : User should set manually the value of the barcode base\n" +" - 'Base managed by Sequence': System will generate the base via a sequence" +msgstr "" +"Son barkodda bir sayı (bir baz) dahil olmak üzere barkod oluşturmaya izin " +"verin.\n" +"\n" +" - 'Baz Manuel Olarak Ayarlandı' : Kullanıcı barkod tabanının değerini " +"manuel olarak ayarlamalıdır\n" +" - 'Baz Dizi tarafından ayarlandı': Sistem, bazı bir dizi aracılığıyla " +"oluşturacaktır" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Barcode" +msgstr "Barkod" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_base +msgid "Barcode Base" +msgstr "Baz Barkod" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_barcode_rule +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Barcode Rule" +msgstr "Barkod Kuralı" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Barcode" +msgstr "Barkod Oluştur" + +#. module: barcodes_generator_location +#: model_terms:ir.ui.view,arch_db:barcodes_generator_location.view_location_form +msgid "Generate Base (Using Sequence)" +msgstr "Baz Oluştur (Dizi Kullanarak)" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_barcode_rule__generate_model +msgid "Generate Model" +msgstr "Model Oluştur" + +#. module: barcodes_generator_location +#: model:ir.model.fields,field_description:barcodes_generator_location.field_stock_location__generate_type +msgid "Generate Type" +msgstr "Tür Oluştur" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_barcode_rule__generate_model +msgid "If 'Generate Type' is set, mention the model related to this rule." +msgstr "'Tür Oluştur' ayarlanmışsa bu kuralla ilgili modeli belirtin." + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_rule_id +msgid "Select a rule to generate a barcode" +msgstr "Barkod oluşturmak için bir kural seçin" + +#. module: barcodes_generator_location +#: model:ir.model,name:barcodes_generator_location.model_stock_location +#: model:ir.model.fields.selection,name:barcodes_generator_location.selection__barcode_rule__generate_model__stock_location +msgid "Stock Location" +msgstr "Stok Konumu" + +#. module: barcodes_generator_location +#: model:ir.model.fields,help:barcodes_generator_location.field_stock_location__barcode_base +msgid "" +"This value is used to generate barcode according to the setting of the " +"barcode rule." +msgstr "" +"Bu değer, barkod kuralının ayarına göre barkod oluşturmak için kullanılır." diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/__init__.py new file mode 100644 index 0000000..975d700 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import barcode_rule +from . import stock_location diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/barcode_rule.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/barcode_rule.py new file mode 100644 index 0000000..b337963 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/barcode_rule.py @@ -0,0 +1,11 @@ +# Copyright 2017 LasLabs Inc. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import fields, models + + +class BarcodeRule(models.Model): + _inherit = "barcode.rule" + + generate_model = fields.Selection( + selection_add=[("stock.location", "Stock Location")], + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/stock_location.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/stock_location.py new file mode 100644 index 0000000..85864ea --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/models/stock_location.py @@ -0,0 +1,48 @@ +# Copyright 2017 LasLabs Inc. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import json + +from lxml import etree + +from odoo import api, models + + +class StockLocation(models.Model): + _name = "stock.location" + _description = "Stock Location" + _inherit = ["stock.location", "barcode.generate.mixin"] + + @api.model + def get_view(self, view_id=None, view_type="form", **options): + """The redefinition of this method is intended to manipulating + the form view of stock.location to add the barcode field to the + view in case it has not been added by the stock_barcodes module. + """ + result = super().get_view(view_id=view_id, view_type=view_type, **options) + if view_type == "form": + doc = etree.XML(result["arch"]) + barcode_field = doc.xpath("//field[@name='barcode']") + if barcode_field: + # If the field exists in the view, it's assumed it has + # been added by 'stock_barcodes' module, then all the + # fields inside 'barcodes_generator_location' group + # (added by this module) are moved next to the existing + # `barcode' field. + barcode_field = barcode_field[0] + group = doc.xpath("//group[@name='barcodes_generator_location']")[0] + for node in group.getchildren()[::-1]: + barcode_field.addnext(node) + # Remove the group since it will be empty at this point. + group.getparent().remove(group) + else: + # If the field does not exist in the view, it is added + # together with the fields that this module adds. + barcode_field = etree.Element("field", {"name": "barcode"}) + placeholder = doc.xpath("//field[@name='barcode_rule_id']")[0] + placeholder.addprevious(barcode_field) + # To the `barcode` field in the view (either the new + # or the existing one), a modifier is added. + modifier = {"readonly": [("generate_type", "=", "sequence")]} + barcode_field.set("modifiers", json.dumps(modifier)) + result["arch"] = etree.tostring(doc) + return result diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONFIGURE.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONFIGURE.rst new file mode 100644 index 0000000..721a53f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONFIGURE.rst @@ -0,0 +1,2 @@ +To configure this module, see the 'Configuration' Section of the description +of the module 'barcodes_generator_abstract' diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONTRIBUTORS.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..9cd91f3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Dave Lasley +* `Tecnativa `_: + + * David Vidal + * Ernesto Tejeda diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CREDITS.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CREDITS.rst new file mode 100644 index 0000000..3e18f75 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/CREDITS.rst @@ -0,0 +1,2 @@ +* Icon of the module is based on the Oxygen Team work and is under LGPL licence: + http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/DESCRIPTION.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/DESCRIPTION.rst new file mode 100644 index 0000000..cd7a192 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/DESCRIPTION.rst @@ -0,0 +1,20 @@ +This module expands Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for Stock Locations. + +For example, a typical pattern for partners is "042........." that means +that: +* the EAN13 code will begin by '042' +* followed by 0 digits (named Barcode Base in this module) +* a 13 digit control + +With this module, it is possible to: + +* Assign a pattern (barcode.rule) to a stock.location + +* Define a Barcode base: + * manually, if the base of the barcode must be set by a user. (typically an + internal code defined in your company) + * automatically by a sequence, if you want to let Odoo to increment a + sequence. (typical case of a customer number incrementation) + +* Generate a barcode, based on the defined pattern and the barcode base diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/USAGE.rst b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/USAGE.rst new file mode 100644 index 0000000..3c30054 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/readme/USAGE.rst @@ -0,0 +1,15 @@ +To use this module, you need to: + +* Go to a Stock Location form + +1 for manual generation + * Set a Barcode Rule + * Set a Barcode Base + * click on the button 'Generate Barcode (Using Barcode Rule)' + +2 for automatic generation + * Set a Barcode Rule + * click on the button 'Generate Base (Using Sequence)' + * click on the button 'Generate Barcode (Using Barcode Rule)' + +.. image:: /barcodes_generator/static/description/stock_location_sequence_generation.png diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/icon.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/icon.png new file mode 100644 index 0000000..07ed687 Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/icon.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/index.html b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/index.html new file mode 100644 index 0000000..bd0c842 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/index.html @@ -0,0 +1,487 @@ + + + + + + +Generate Barcodes for Stock Locations + + + +
+

Generate Barcodes for Stock Locations

+ + +

Beta License: AGPL-3 OCA/stock-logistics-barcode Translate me on Weblate Try me on Runboat

+

This module expands Odoo functionality, allowing user to generate barcode +depending on a given barcode rule for Stock Locations.

+

For example, a typical pattern for partners is “042………” that means +that: +* the EAN13 code will begin by ‘042’ +* followed by 0 digits (named Barcode Base in this module) +* a 13 digit control

+

With this module, it is possible to:

+
    +
  • Assign a pattern (barcode.rule) to a stock.location
  • +
  • +
    Define a Barcode base:
    +
      +
    • manually, if the base of the barcode must be set by a user. (typically an +internal code defined in your company)
    • +
    • automatically by a sequence, if you want to let Odoo to increment a +sequence. (typical case of a customer number incrementation)
    • +
    +
    +
    +
  • +
  • Generate a barcode, based on the defined pattern and the barcode base
  • +
+

Table of contents

+ +
+

Configuration

+

To configure this module, see the ‘Configuration’ Section of the description +of the module ‘barcodes_generator_abstract’

+
+
+

Usage

+

To use this module, you need to:

+
    +
  • Go to a Stock Location form
  • +
+
+
1 for manual generation
+
    +
  • Set a Barcode Rule
  • +
  • Set a Barcode Base
  • +
  • click on the button ‘Generate Barcode (Using Barcode Rule)’
  • +
+
+
2 for automatic generation
+
    +
  • Set a Barcode Rule
  • +
  • click on the button ‘Generate Base (Using Sequence)’
  • +
  • click on the button ‘Generate Barcode (Using Barcode Rule)’
  • +
+
+
+https://raw.githubusercontent.com/barcodes_generator/static/description/stock_location_sequence_generation.png +
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • LasLabs
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/stock-logistics-barcode project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/stock_location_sequence_generation.png b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/stock_location_sequence_generation.png new file mode 100644 index 0000000..43259e9 Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/static/description/stock_location_sequence_generation.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/__init__.py new file mode 100644 index 0000000..b7a6f5a --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import test_barcode_generator diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/test_barcode_generator.py b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/test_barcode_generator.py new file mode 100644 index 0000000..c321fb2 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/tests/test_barcode_generator.py @@ -0,0 +1,27 @@ +# Copyright 2017 LasLabs Inc. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo.tests.common import TransactionCase + + +class TestBarcodeGenerator(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.record = cls.env.ref( + "barcodes_generator_location.stock_location_barcode", + ) + cls.record.generate_barcode() + + def test_generate_base(self): + """It should generate the correct base for the barcode.""" + self.assertEqual( + self.record.barcode_base, + 1, + ) + + def test_generate_sequence(self): + """It should generate the correct sequence for the barcode.""" + self.assertEqual( + self.record.barcode, + "1190000000014", + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/views/stock_location.xml b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/views/stock_location.xml new file mode 100644 index 0000000..c80a2ff --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-barcodes_generator_location/barcodes_generator_location/views/stock_location.xml @@ -0,0 +1,56 @@ + + + + + stock.location + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_controller.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_controller.esm.js new file mode 100644 index 0000000..1a71bb2 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_controller.esm.js @@ -0,0 +1,71 @@ +/** @odoo-module */ +/* Copyright 2021 Tecnativa - Alexandre D. Díaz + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +import {onMounted, useEffect} from "@odoo/owl"; +import {FormController} from "@web/views/form/form_controller"; +import {useService} from "@web/core/utils/hooks"; + +export class StockBarcodesFormController extends FormController { + setup() { + super.setup(); + const busService = useService("bus_service"); + const ormService = useService("orm"); + this.enableApplyCount = false; + // Adds support to use control_pannel_hidden from the + // context to disable the control panel + if (this.props.context.control_panel_hidden) { + this.display.controlPanel = false; + } + + const handleNotification = ({detail: notifications}) => { + if (notifications && notifications.length > 0) { + notifications.forEach((notif) => { + const {payload, type} = notif; + if (type === "count_apply_inventory" && payload) { + this.countApplyInventory(payload.count); + } + }); + } + }; + useEffect(() => { + busService.addChannel("stock_barcodes_form_update"); + busService.addEventListener("notification", handleNotification); + const $applyInventory = $("span.count_apply_inventory"); + if ($applyInventory.length > 0) { + if (!this.enableApplyCount) { + this.countApplyInventory(1); + this.enableApplyCount = true; + } + } else { + this.enableApplyCount = false; + } + return () => { + busService.deleteChannel("stock_barcodes_form_update"); + busService.removeEventListener("notification", handleNotification); + }; + }); + + onMounted(async () => { + if (this.props.resModel === "wiz.stock.barcodes.read.inventory") { + const fields = ["count_inventory_quants"]; + const countApply = await ormService.call( + this.props.resModel, + "read", + [this.props.resId], + {fields} + ); + this.countApplyInventory( + countApply.length > 0 ? countApply[0].count_inventory_quants : 0 + ); + } + }); + } + + countApplyInventory(countApply = 0) { + const $countApply = $("span.count_apply_inventory"); + if ($countApply.length) { + $countApply.text(countApply); + } + } +} diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_view.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_view.esm.js new file mode 100644 index 0000000..a85ed91 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/form/form_view.esm.js @@ -0,0 +1,14 @@ +/** @odoo-module */ +/* Copyright 2021 Tecnativa - Alexandre D. Díaz + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +import {StockBarcodesFormController} from "./form_controller.esm"; +import {formView} from "@web/views/form/form_view"; +import {registry} from "@web/core/registry"; + +export const StockBarcodesFormView = { + ...formView, + Controller: StockBarcodesFormController, +}; + +registry.category("views").add("stock_barcodes_form", StockBarcodesFormView); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_record.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_record.esm.js new file mode 100644 index 0000000..bf94bdc --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_record.esm.js @@ -0,0 +1,27 @@ +/** @odoo-module */ +/* Copyright 2022 Tecnativa - Alexandre D. Díaz + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +import {KanbanRecord} from "@web/views/kanban/kanban_record"; +import {patch} from "@web/core/utils/patch"; + +patch(KanbanRecord.prototype, "stock_barcodes.KanbanRecord", { + props: { + ...KanbanRecord.props, + }, + + setup() { + this._super(...arguments); + }, + + async onCustomGlobalClick() { + const record_barcode = $('div[name="inventory_quant_ids"]'); + if (record_barcode.length > 0) { + const record = this.props.record; + $("div.oe_kanban_operations").addClass("d-none"); + $("div.oe_kanban_operations-" + record.data.id).removeClass("d-none"); + return; + } + this._super.apply(this, arguments); + }, +}); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_renderer.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_renderer.esm.js new file mode 100644 index 0000000..bd3f846 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_renderer.esm.js @@ -0,0 +1,200 @@ +/** @odoo-module */ +/* Copyright 2022 Tecnativa - Alexandre D. Díaz + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +import {onPatched, useEffect, useRef} from "@odoo/owl"; +import {useBus, useService} from "@web/core/utils/hooks"; +import {KanbanRenderer} from "@web/views/kanban/kanban_renderer"; +import {isAllowedBarcodeModel} from "../../utils/barcodes_models_utils.esm"; +import {patch} from "@web/core/utils/patch"; +import {useHotkey} from "@web/core/hotkeys/hotkey_hook"; + +patch(KanbanRenderer.prototype, "stock_barcodes.KanbanRenderer", { + setup() { + const rootRef = useRef("root"); + useHotkey( + "Enter", + ({target}) => { + if (!target.classList.contains("o_kanban_record")) { + return; + } + + // Open first link + let firstLink = null; + if (isAllowedBarcodeModel(this.props.list.resModel)) { + firstLink = target.querySelector( + ".oe_kanban_action_button,.oe_btn_quick_action" + ); + } + if (!firstLink) { + firstLink = target.querySelector( + ".oe_kanban_global_click, a, button" + ); + } + if (firstLink && firstLink instanceof HTMLElement) { + firstLink.click(); + } + return; + }, + {area: () => rootRef.el} + ); + + this._super(...arguments); + this.ormService = useService("orm"); + this.action = useService("action"); + const busService = useService("bus_service"); + this.enableCurrentOperation = 0; + const handleNotification = ({detail: notifications}) => { + if (notifications && notifications.length > 0) { + notifications.forEach((notif) => { + const {payload, type} = notif; + if (type === "enable_operations" && payload) { + this.enableCurrentOperation = payload.id; + } + }); + } + }; + useEffect(() => { + busService.addChannel("stock_barcodes_kanban_update"); + busService.addEventListener("notification", handleNotification); + return () => { + busService.deleteChannel("stock_barcodes_kanban_update"); + busService.removeEventListener("notification", handleNotification); + }; + }); + + onPatched(() => { + $("div.oe_kanban_operations-" + this.enableCurrentOperation).removeClass( + "d-none" + ); + }); + + if (isAllowedBarcodeModel(this.props.list.resModel)) { + if (this.env.searchModel) { + useBus(this.env.searchModel, "focus-view", () => { + const {model} = this.props.list; + if (model.useSampleModel || !model.hasData()) { + return; + } + const cards = Array.from( + rootRef.el.querySelectorAll(".o_kanban_record") + ); + const firstCard = cards.find( + (card) => + card.querySelectorAll("button[name='action_barcode_scan']") + .length > 0 + ); + if (firstCard) { + // Focus first kanban card + firstCard.focus(); + } + }); + } + } + + this.showMessageScanProductPackage = + this.props.list.resModel === "stock.picking"; + }, + + getNextCard(direction, iCard, cards, iGroup, isGrouped) { + let nextCard = null; + switch (direction) { + case "down": + nextCard = iCard < cards[iGroup].length - 1 && cards[iGroup][iCard + 1]; + break; + case "up": + nextCard = iCard > 0 && cards[iGroup][iCard - 1]; + break; + case "right": + if (isGrouped) { + nextCard = iGroup < cards.length - 1 && cards[iGroup + 1][0]; + } else { + nextCard = iCard < cards[0].length - 1 && cards[0][iCard + 1]; + } + break; + case "left": + if (isGrouped) { + nextCard = iGroup > 0 && cards[iGroup - 1][0]; + } else { + nextCard = iCard > 0 && cards[0][iCard - 1]; + } + break; + } + return nextCard; + }, + + // eslint-disable-next-line complexity + // This is copied from the base kanban_renderer. + // We want to only focus card with barcode when isAllowedBarcodeModel returns true + // Since there is no way to hook and change the candidate cards that are selectable + // (cards line 84) we cannot inherit and change the result. And even if we called + // super it would not respect inheritability + /** + * Redefines focusNextCard to select only kanban card with a barcode + * when isAllowBarcodeModel returns true for the current model + * + * @param {Node} area + * @param {String} direction + * + * @returns {String/Boolean} + */ + focusNextCard(area, direction) { + const {isGrouped} = this.props.list; + const closestCard = document.activeElement.closest(".o_kanban_record"); + if (!closestCard) { + return; + } + const groups = isGrouped + ? [...area.querySelectorAll(".o_kanban_group")] + : [area]; + let cards = [...groups] + .map((group) => [...group.querySelectorAll(".o_kanban_record")]) + .filter((group) => group.length); + + if (isAllowedBarcodeModel(this.props.list.resModel)) { + cards = cards.map((group) => { + const result = group.filter((card) => { + return ( + card.querySelectorAll('button[name="action_barcode_scan"]') + .length > 0 + ); + }); + return result; + }); + } + + let iGroup = null; + let iCard = null; + for (iGroup = 0; iGroup < cards.length; iGroup++) { + const i = cards[iGroup].indexOf(closestCard); + if (i !== -1) { + iCard = i; + break; + } + } + if (iCard === undefined) { + iCard = 0; + iGroup = 0; + } + // Find next card to focus + const nextCard = this.getNextCard(direction, iCard, cards, iGroup, isGrouped); + + if (nextCard && nextCard instanceof HTMLElement) { + nextCard.focus(); + return true; + } + }, + + async openBarcodeScanner() { + if (this.showMessageScanProductPackage) { + const action = await this.ormService.call( + "stock.picking", + "action_barcode_scan", + [false, false] + ); + this.action.doAction(action); + } + }, +}); + +KanbanRenderer.template = "stock_barcodes.BarcodeKanbanRenderer"; diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_view.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_view.esm.js new file mode 100644 index 0000000..1e03eab --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/kanban_view.esm.js @@ -0,0 +1,8 @@ +/** @odoo-module */ + +import {kanbanView} from "@web/views/kanban/kanban_view"; +import {registry} from "@web/core/registry"; + +registry.category("views").add("stock_barcodes_kanban", { + ...kanbanView, +}); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/stock_barcodes_kanban.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/stock_barcodes_kanban.xml new file mode 100644 index 0000000..e160814 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/kanban/stock_barcodes_kanban.xml @@ -0,0 +1,28 @@ + + + + + +
+ Scan a transfer, a product or a lot to filter your records + Scan a transfer or a product to filter your records + +
+
+
+ +
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/view_compiler.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/view_compiler.esm.js new file mode 100644 index 0000000..986bd1f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/view_compiler.esm.js @@ -0,0 +1,16 @@ +/** @odoo-module */ + +import {ViewCompiler} from "@web/views/view_compiler"; +import {patch} from "@web/core/utils/patch"; + +patch(ViewCompiler.prototype, "Add hotkey props to button tag", { + compileButton(el, params) { + const hotkey = el.getAttribute("data-hotkey"); + el.removeAttribute("data-hotkey"); + const button = this._super(el, params); + if (hotkey) { + button.setAttribute("hotkey", hotkey); + } + return button; + }, +}); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/views.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/views.esm.js new file mode 100644 index 0000000..c126ce3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/static/src/views/views.esm.js @@ -0,0 +1,225 @@ +/** @odoo-module */ +/* Copyright 2024 Akretion +/* Copyright 2024 Tecnativa + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +import {getVisibleElements, isVisible} from "@web/core/utils/ui"; +import {FormController} from "@web/views/form/form_controller"; +import {KanbanController} from "@web/views/kanban/kanban_controller"; +import {ListController} from "@web/views/list/list_controller"; +import {_t} from "@web/core/l10n/translation"; +import {isAllowedBarcodeModel} from "../utils/barcodes_models_utils.esm"; +import {patch} from "@web/core/utils/patch"; +import {useEffect} from "@odoo/owl"; +import {useService} from "@web/core/utils/hooks"; + +let barcodeOverlaysVisible = false; + +// This is necessary because the hotkey service does not make its API public for +// some reasons +export function barcodeRemoveHotkeyOverlays() { + for (const overlay of document.querySelectorAll(".o_barcode_web_hotkey_overlay")) { + overlay.remove(); + } + barcodeOverlaysVisible = false; +} + +// This is necessary because the hotkey service does not make its API public for +// some reasons +export function barcodeAddHotkeyOverlays(activeElement) { + for (const el of getVisibleElements( + activeElement, + "[data-hotkey]:not(:disabled)" + )) { + const hotkey = el.dataset.hotkey; + const overlay = document.createElement("div"); + overlay.classList.add( + "o_barcode_web_hotkey_overlay", + "position-absolute", + "top-0", + "bottom-0", + "start-0", + "end-0", + "d-flex", + "justify-content-center", + "align-items-center", + "m-0", + "bg-black-50", + "h6" + ); + const overlayKbd = document.createElement("kbd"); + overlayKbd.className = "small"; + overlayKbd.appendChild(document.createTextNode(hotkey.toUpperCase())); + overlay.appendChild(overlayKbd); + + let overlayParent = null; + if (el.tagName.toUpperCase() === "INPUT") { + // Special case for the search input that has an access key + // defined. We cannot set the overlay on the input itself, + // only on its parent. + overlayParent = el.parentElement; + } else { + overlayParent = el; + } + + if (overlayParent.style.position !== "absolute") { + overlayParent.style.position = "relative"; + } + overlayParent.appendChild(overlay); + } + barcodeOverlaysVisible = true; +} + +function setupView() { + const actionService = useService("action"); + const uiService = useService("ui"); + const busService = useService("bus_service"); + const notification = useService("notification"); + + const handleKeys = async (ev) => { + if (ev.keyCode === 113) { + // F2 + const {activeElement} = uiService; + + if (barcodeOverlaysVisible) { + barcodeRemoveHotkeyOverlays(); + } else { + barcodeAddHotkeyOverlays(activeElement); + } + } else if (ev.keyCode === 120) { + // F9 + const button = document.querySelector("button[name='action_clean_values']"); + if (isVisible(button)) { + button.click(); + } + } else if (ev.keyCode === 123 || ev.keyCode === 115) { + // F12 or F4 + await actionService.doAction( + "stock_barcodes.action_stock_barcodes_action_client", + { + name: "Barcode wizard menu", + res_model: "wiz.stock.barcodes.read.picking", + type: "ir.actions.act_window", + } + ); + } + }; + + const handleNotification = ({detail: notifications}) => { + if (notifications && notifications.length > 0) { + notifications.forEach((notif) => { + const {payload, type} = notif; + if ( + (this.model.root.resModel === payload.res_model) & + (this.model.root.resId === payload.res_id) + ) { + if (type === "stock_barcodes_sound") { + if (payload.sound === "ko") { + this.$sound_ko[0].play(); + } else { + this.$sound_ok[0].play(); + } + } else if (type === "stock_barcodes_focus") { + requestIdleCallback(() => { + const input = document.querySelector( + `[name=${payload.field_name}] input` + ); + if (input) { + input.focus(); + } + }); + } else if (type === "stock_barcodes_notify") { + notification.add(notif.payload.message, { + title: notif.payload.title, + type: notif.payload.type, + sticky: notif.payload.sticky, + }); + } + } + + if (type === "stock_barcodes_edit_manual") { + if (payload.manual_entry) { + this.env.bus.trigger("enableFormEditBarcode"); + } else if (!payload.manual_entry) { + this.env.bus.trigger("disableFormEditBarcode"); + } + } else if (type === "actions_barcode") { + if (payload.valid_picking) { + notification.add(_t("The transfer has been validated"), { + type: "success", + }); + } else if (payload.apply_inventory) { + actionService.doAction( + "stock_barcodes.action_stock_barcodes_action_client" + ); + notification.add( + _t("The inventory adjustment has been validated"), + { + type: "success", + } + ); + } + } else if (type === "actions_barcode_notification") { + notification.add(_t(payload.message), { + type: payload.message_type, + sticky: payload.sticky, + }); + } + }); + } + }; + + useEffect(() => { + document.body.addEventListener("keydown", handleKeys); + + this.$sound_ok = $("
+

+ Detailed operations +

+ + + + + + + + + + +
+
+
+ +
+ + Lot: + + + + Package: + + +
+
+
+ + + +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + +
+
+ +
+
+ + + +
+
+ + + + +
+
+
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/wizard/stock_barcodes_read_views.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/wizard/stock_barcodes_read_views.xml new file mode 100644 index 0000000..38aa8cf --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes/stock_barcodes/wizard/stock_barcodes_read_views.xml @@ -0,0 +1,489 @@ + + + stock.barcodes.read.form + wiz.stock.barcodes.read + +
+
+
+
+
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ Source Location + + + +
+
+ +
+ Source Package -> Result Package + + + + -> + + + +
+
+ +
+ Product + + +
+
+ +
+ Lot S/N + + + +
+
+ +
+ Total Qty + + +
+
+ +
+
+
+ ( + + /) + + +
+
+
+
+ +
+
+
+
+
+ + + +
+ + + + + + + +
+
+ + + + + stock.barcodes.read.packaging.form + wiz.stock.barcodes.read + + + + +
+ + + +
+
+
+ + + + +
+
+ + + wiz.stock.barcodes.read + Barcodes Read + form + {} + + fullscreen + + + stock.barcodes.read.form.manual_qty + wiz.stock.barcodes.read + + +
+ + + + +
+ + +
+
+ + wiz.stock.barcodes.new.lot + New Lot + form + {} + + inline + +
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/README.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/README.md new file mode 100644 index 0000000..582a0db --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/README.md @@ -0,0 +1,47 @@ +# Stock Barcodes Picking Batch + +Odoo addon: stock_barcodes_picking_batch + +## Installation + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch +``` + +## Dependencies + +This addon depends on: +- stock_barcodes +- stock_picking_batch + +## Manifest Information + +- **Name**: Stock Barcodes Picking Batch +- **Version**: 16.0.2.0.0 +- **Category**: Extra Tools +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/stock-logistics-barcode](https://github.com/OCA/stock-logistics-barcode) branch 16.0, addon `stock_barcodes_picking_batch`. + +## License + +This package maintains the original AGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/ARCHITECTURE.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/ARCHITECTURE.md new file mode 100644 index 0000000..350fa20 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Stock_barcodes_picking_batch Module - stock_barcodes_picking_batch + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONFIGURATION.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONFIGURATION.md new file mode 100644 index 0000000..462f291 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for stock_barcodes_picking_batch. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONTROLLERS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/DEPENDENCIES.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/DEPENDENCIES.md new file mode 100644 index 0000000..71987c4 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [stock_barcodes](../../odoo-bringout-oca-stock-logistics-barcode-stock_barcodes) +- [stock_picking_batch](../../odoo-bringout-oca-ocb-stock_picking_batch) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/FAQ.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/FAQ.md new file mode 100644 index 0000000..8a08aae --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon stock_barcodes_picking_batch or install in UI. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/INSTALL.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/INSTALL.md new file mode 100644 index 0000000..958631a --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch" +# or +uv pip install odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch" +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/MODELS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/MODELS.md new file mode 100644 index 0000000..fb54d56 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in stock_barcodes_picking_batch. + +```mermaid +classDiagram + class stock_picking_batch +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/OVERVIEW.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/OVERVIEW.md new file mode 100644 index 0000000..c7bb851 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: stock_barcodes_picking_batch. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon stock_barcodes_picking_batch +- License: LGPL-3 diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/REPORTS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/SECURITY.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/SECURITY.md new file mode 100644 index 0000000..30a2ab7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in stock_barcodes_picking_batch. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../stock_barcodes_picking_batch/security/ir.model.access.csv)** + - 1 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../stock_barcodes_picking_batch/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/USAGE.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/USAGE.md new file mode 100644 index 0000000..f15d873 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon stock_barcodes_picking_batch +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/WIZARDS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/WIZARDS.md new file mode 100644 index 0000000..d2d11b7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/doc/WIZARDS.md @@ -0,0 +1,9 @@ +# Wizards + +Transient models exposed as UI wizards in stock_barcodes_picking_batch. + +```mermaid +classDiagram + class WizCandidatePickingBatch + class WizStockBarcodesReadPickingBatch +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/pyproject.toml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/pyproject.toml new file mode 100644 index 0000000..4a7217b --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch" +version = "16.0.0" +description = "Stock Barcodes Picking Batch - It provides read barcodes on stock operations from batch pickings." +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-stock-logistics-barcode-stock_barcodes>=16.0.0", + "odoo-bringout-oca-stock-logistics-barcode-stock_picking_batch>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["stock_barcodes_picking_batch"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/README.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/README.rst new file mode 100644 index 0000000..8a048d8 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/README.rst @@ -0,0 +1,90 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +============================ +Stock Barcodes Picking Batch +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:10d9dbf39bb73ba26a3a133881f9cade0d5ed46e3db1a8fa2329feee2fb0ed46 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--barcode-lightgray.png?logo=github + :target: https://github.com/OCA/stock-logistics-barcode/tree/16.0/stock_barcodes_picking_batch + :alt: OCA/stock-logistics-barcode +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/stock-logistics-barcode-16-0/stock-logistics-barcode-16-0-stock_barcodes_picking_batch + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-barcode&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends barcode reader interface to allow to read quant barcodes. +After barcode has been readed the product, lot and location are been filled. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Read usage section from stock_barcodes module. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + + +* `Tecnativa `_: + + * Sergio Teruel + * Carlos Dauden + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/stock-logistics-barcode `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__init__.py new file mode 100644 index 0000000..21ba484 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2021 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import models +from . import wizard diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__manifest__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__manifest__.py new file mode 100644 index 0000000..d0e371f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/__manifest__.py @@ -0,0 +1,25 @@ +# Copyright 2021 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Stock Barcodes Picking Batch", + "summary": "It provides read barcodes on stock operations from batch pickings.", + "version": "16.0.2.0.0", + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/stock-logistics-barcode", + "license": "AGPL-3", + "category": "Extra Tools", + "depends": ["stock_barcodes", "stock_picking_batch"], + "data": [ + "security/ir.model.access.csv", + "data/stock_barcodes_action.xml", + "views/stock_picking_batch_views.xml", + "wizard/stock_barcodes_read_picking_batch_views.xml", + ], + "assets": { + "web.assets_backend": [ + "stock_barcodes_picking_batch/static/src/**/*.js", + ], + }, + "installable": True, + "auto_install": True, +} diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/data/stock_barcodes_action.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/data/stock_barcodes_action.xml new file mode 100644 index 0000000..3f7a910 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/data/stock_barcodes_action.xml @@ -0,0 +1,15 @@ + + + + Picking batch + 30 + + {"search_default_my_batch": 1, 'search_default_state': 'assigned'} + 5 + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/bs.po b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/bs.po new file mode 100644 index 0000000..3609ffe --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/bs.po @@ -0,0 +1,260 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_barcodes_picking_batch +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_done +msgid "#Product Ref done:" +msgstr "#Ref proizvoda završeno:" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_count +msgid "#Product Ref:" +msgstr "#Ref proizvoda:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +msgid "Scan barcodes" +msgstr "Skeniraj barkodove" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "#Ref: " +msgstr "#Ref: " + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +" | \n" +" #Read: " +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Are you sure to validate the picking batch?" +msgstr "Jeste li sigurni da želite validirati seriju pobranja?" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Barcode reader" +msgstr "Čitač barkoda" + +#. module: stock_barcodes_picking_batch +#: model:ir.actions.act_window,name:stock_barcodes_picking_batch.action_stock_barcodes_read_picking_batch +msgid "Barcodes Read" +msgstr "Pročitani barkodovi" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_stock_picking_batch +msgid "Batch Transfer" +msgstr "Skupni prijenos" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__name +msgid "Candidate Picking Batch" +msgstr "Kandidatska serija pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__candidate_picking_batch_ids +msgid "Candidate picking batch" +msgstr "Kandidatska serija pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_candidate_picking_batch +msgid "Candidate picking batchs for barcode interface" +msgstr "Kandidatske serije pobranja za interfejs barkoda" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Click on picking batch pushpin to lock it" +msgstr "Kliknite na kopču serije pobranja da je zakljuačate" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "Confirmed moves" +msgstr "Potvrđeni pokreti" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__date +msgid "Creation Date" +msgstr "Datum kreiranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__outgoing +msgid "Customers" +msgstr "Kupci" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Detailed operations" +msgstr "Detaljne operacije" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__display_name +msgid "Display Name" +msgstr "Prikazani naziv" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__id +msgid "ID" +msgstr "ID" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__internal +msgid "Internal" +msgstr "Interni" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__is_pending +msgid "Is Pending" +msgstr "Na čekanju" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,help:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "" +"It allows to work with movements without reservation (Without detailed " +"operations)" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch____last_update +msgid "Last Modified on" +msgstr "Zadnje mijenjano" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Lot:" +msgstr "Serijski br.:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Open" +msgstr "Otvori" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Package:" +msgstr "Paket:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Pending moves" +msgstr "Pokreti na čekanju" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_id +msgid "Picking Batch" +msgstr "Serija pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_mode +msgid "Picking Mode" +msgstr "Način pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__picking_batch_id +#: model:stock.barcodes.action,name:stock_barcodes_picking_batch.stock_barcodes_action_picking_batch +msgid "Picking batch" +msgstr "Serija pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_mode__picking_batch +msgid "Picking batch mode" +msgstr "Način rada serije pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_product_qty +msgid "Picking batch quantities" +msgstr "Količine serije pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__scan_count +msgid "Scan Count" +msgstr "Broj skeniranja" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_picking_batch_kanban +msgid "Start barcode interface" +msgstr "Pokreni interfejs barkoda" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__state +msgid "State" +msgstr "Status" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_type_code +msgid "Type of Operation" +msgstr "Tip operacije" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Validate" +msgstr "Ovjeri" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__incoming +msgid "Vendors" +msgstr "Dobavljači" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_barcode_id +msgid "Wiz Barcode" +msgstr "Čar. barkod" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_picking_batch_id +msgid "Wizard Picking Batch" +msgstr "Čarobnjak serije pobranja" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_stock_barcodes_read_picking +msgid "Wizard to read barcode on picking batch" +msgstr "Čarobnjak za čitanje barkoda na seriji pobranja" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/es.po b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/es.po new file mode 100644 index 0000000..6e3a521 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/es.po @@ -0,0 +1,292 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_barcodes_picking_batch +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-06 21:50+0000\n" +"PO-Revision-Date: 2023-10-30 21:36+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_done +msgid "#Product Ref done:" +msgstr "#Referencias realizadas:" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_count +msgid "#Product Ref:" +msgstr "#Referencias:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +"" +msgstr "" +"" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +msgid "Scan barcodes" +msgstr "Leer Cód. barras" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "#Ref: " +msgstr "#Ref: " + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +" | \n" +" #Read: " +msgstr "" +"| \n" +" #Leer: " + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Are you sure to validate the picking batch?" +msgstr "¿Seguro que quiere validar esta agrupación de albaranes?" + +#. module: stock_barcodes_picking_batch +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Barcode reader" +msgstr "Escaneador" + +#. module: stock_barcodes_picking_batch +#: model:ir.actions.act_window,name:stock_barcodes_picking_batch.action_stock_barcodes_read_picking_batch +msgid "Barcodes Read" +msgstr "Lector de códigos de barras" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_stock_picking_batch +msgid "Batch Transfer" +msgstr "Agrupación de albaranes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__name +msgid "Candidate Picking Batch" +msgstr "Posibles grupos de albaranes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__candidate_picking_batch_ids +msgid "Candidate picking batch" +msgstr "Posibles grupos de albaranes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_candidate_picking_batch +msgid "Candidate picking batchs for barcode interface" +msgstr "Posibles grupos de albaranes para el lector de códigos de barras" + +#. module: stock_barcodes_picking_batch +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Click on picking batch pushpin to lock it" +msgstr "Pinche en la chincheta del grupo para bloquearlo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "Confirmed moves" +msgstr "Movimientos confirmados" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__date +msgid "Creation Date" +msgstr "Fecha de Creación" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__outgoing +msgid "Customers" +msgstr "Clientes" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Detailed operations" +msgstr "Operaciones detalladas" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__internal +msgid "Internal" +msgstr "Interno" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__is_pending +msgid "Is Pending" +msgstr "Pendiente" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,help:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "" +"It allows to work with movements without reservation (Without detailed " +"operations)" +msgstr "" +"Permite trabajar con movimientos sin reserva (Sin operaciones detalladas)" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_uid +msgid "Last Updated by" +msgstr "Última Actualización por" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_date +msgid "Last Updated on" +msgstr "Última Actualización el" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Lot:" +msgstr "Lote:" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,help:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__name +msgid "Name of the batch transfer" +msgstr "Nombre de agrupación de albaranes" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Open" +msgstr "Abrir" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Package:" +msgstr "Empaquetado:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Pending moves" +msgstr "Movimientos pendientes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_id +msgid "Picking Batch" +msgstr "Grupo de albaranes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_mode +msgid "Picking Mode" +msgstr "Modo de albarán" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__picking_batch_id +#: model:stock.barcodes.action,name:stock_barcodes_picking_batch.stock_barcodes_action_picking_batch +msgid "Picking batch" +msgstr "Grupo de albaranes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_mode__picking_batch +msgid "Picking batch mode" +msgstr "Modo de recogida por lotes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_product_qty +msgid "Picking batch quantities" +msgstr "Cantidades del grupo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__scan_count +msgid "Scan Count" +msgstr "Cantidad de lecturas" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_picking_batch_kanban +msgid "Start barcode interface" +msgstr "Iniciar el lector de códigos de barras" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__state +msgid "State" +msgstr "Estado" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_type_code +msgid "Type of Operation" +msgstr "Tipo de operación" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Validate" +msgstr "Validar" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__incoming +msgid "Vendors" +msgstr "Proveedores" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_barcode_id +msgid "Wiz Barcode" +msgstr "Asistente de código de barras" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_picking_batch_id +msgid "Wizard Picking Batch" +msgstr "Asistente de Recogida por Lotes" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_stock_barcodes_read_picking +msgid "Wizard to read barcode on picking batch" +msgstr "" +"Asistente para leer códigos de barras desde las agrupaciones de albaranes" + +#~ msgid "#Read:" +#~ msgstr "#Leído" + +#~ msgid "#Ref:" +#~ msgstr "#Ref:" + +#~ msgid "" +#~ "the state of the batch picking. Workflow is draft -> in_progress/assigned " +#~ "-> done or cancel" +#~ msgstr "" +#~ "el estado del grupo de albaranes. El flujo es borrador -> asignado -> " +#~ "realizado o cancelado" + +#~ msgid "#References done:" +#~ msgstr "#Leído:" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/it.po b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/it.po new file mode 100644 index 0000000..07697f0 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/it.po @@ -0,0 +1,270 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_barcodes_picking_batch +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-01-10 15:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_done +msgid "#Product Ref done:" +msgstr "#Rif. prodotto completato:" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_count +msgid "#Product Ref:" +msgstr "#Rif. prodotto:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" +"" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +msgid "Scan barcodes" +msgstr "Scansionare i codici a barre" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "#Ref: " +msgstr "#Rif: " + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +" | \n" +" #Read: " +msgstr "" +" | \n" +" #Leggi: " + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Are you sure to validate the picking batch?" +msgstr "Sei sicuro di validare il lotto di prelievo?" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Barcode reader" +msgstr "Lettore codice a barre" + +#. module: stock_barcodes_picking_batch +#: model:ir.actions.act_window,name:stock_barcodes_picking_batch.action_stock_barcodes_read_picking_batch +msgid "Barcodes Read" +msgstr "Codici a barre letti" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_stock_picking_batch +msgid "Batch Transfer" +msgstr "Trasferimento raggruppato" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__name +msgid "Candidate Picking Batch" +msgstr "Loddo di prelievo candidato" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__candidate_picking_batch_ids +msgid "Candidate picking batch" +msgstr "Lotto di prelievo candidato" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_candidate_picking_batch +msgid "Candidate picking batchs for barcode interface" +msgstr "Lotti di prelievo candidati per interfaccia codice a barre" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Click on picking batch pushpin to lock it" +msgstr "Fare clic sulla puntina del lotto di prelievo per bloccarlo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "Confirmed moves" +msgstr "Movimenti confermati" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__date +msgid "Creation Date" +msgstr "Data creazione" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__outgoing +msgid "Customers" +msgstr "Clienti" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Detailed operations" +msgstr "Operazioni dettagliate" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__id +msgid "ID" +msgstr "ID" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__internal +msgid "Internal" +msgstr "Interno" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__is_pending +msgid "Is Pending" +msgstr "È in sospeso" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,help:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "" +"It allows to work with movements without reservation (Without detailed " +"operations)" +msgstr "" +"Permette di lavorare con i movimenti senza prenotazioni (senza operazioni " +"dettagliate)" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Lot:" +msgstr "Lotto:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Open" +msgstr "Apri" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Package:" +msgstr "Collo:" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Pending moves" +msgstr "Movimenti in sospeso" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_id +msgid "Picking Batch" +msgstr "Lotto di prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_mode +msgid "Picking Mode" +msgstr "Modo prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__picking_batch_id +#: model:stock.barcodes.action,name:stock_barcodes_picking_batch.stock_barcodes_action_picking_batch +msgid "Picking batch" +msgstr "Lotto di prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_mode__picking_batch +msgid "Picking batch mode" +msgstr "Modo lotto di prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_product_qty +msgid "Picking batch quantities" +msgstr "Quantità lotto di prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__scan_count +msgid "Scan Count" +msgstr "Conteggio scansione" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_picking_batch_kanban +msgid "Start barcode interface" +msgstr "Avviare interfaccia codice a barre" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__state +msgid "State" +msgstr "Stato" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_type_code +msgid "Type of Operation" +msgstr "Tipo di operazione" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Validate" +msgstr "Valida" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__incoming +msgid "Vendors" +msgstr "Fornitori" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_barcode_id +msgid "Wiz Barcode" +msgstr "Procedura guidata codice a barre" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_picking_batch_id +msgid "Wizard Picking Batch" +msgstr "Procedura guidata lotto di prelievo" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_stock_barcodes_read_picking +msgid "Wizard to read barcode on picking batch" +msgstr "Procedura guidata per leggere il codice a barre sul lotto di prelievo" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/stock_barcodes_picking_batch.pot b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/stock_barcodes_picking_batch.pot new file mode 100644 index 0000000..78cad4e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/i18n/stock_barcodes_picking_batch.pot @@ -0,0 +1,260 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_barcodes_picking_batch +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_done +msgid "#Product Ref done:" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__product_ref_count +msgid "#Product Ref:" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +msgid "Scan barcodes" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "#Ref: " +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "" +" | \n" +" #Read: " +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Are you sure to validate the picking batch?" +msgstr "" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Barcode reader" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.actions.act_window,name:stock_barcodes_picking_batch.action_stock_barcodes_read_picking_batch +msgid "Barcodes Read" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_stock_picking_batch +msgid "Batch Transfer" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__name +msgid "Candidate Picking Batch" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__candidate_picking_batch_ids +msgid "Candidate picking batch" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_candidate_picking_batch +msgid "Candidate picking batchs for barcode interface" +msgstr "" + +#. module: stock_barcodes_picking_batch +#. odoo-python +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#: code:addons/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py:0 +#, python-format +msgid "Click on picking batch pushpin to lock it" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "Confirmed moves" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_uid +msgid "Created by" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__create_date +msgid "Created on" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__date +msgid "Creation Date" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__outgoing +msgid "Customers" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Detailed operations" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__display_name +msgid "Display Name" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__id +msgid "ID" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__internal +msgid "Internal" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__is_pending +msgid "Is Pending" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,help:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__confirmed_moves +msgid "" +"It allows to work with movements without reservation (Without detailed " +"operations)" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch____last_update +msgid "Last Modified on" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__write_date +msgid "Last Updated on" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Lot:" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Open" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Package:" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Pending moves" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_id +msgid "Picking Batch" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_mode +msgid "Picking Mode" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__picking_batch_id +#: model:stock.barcodes.action,name:stock_barcodes_picking_batch.stock_barcodes_action_picking_batch +msgid "Picking batch" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_mode__picking_batch +msgid "Picking batch mode" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_batch_product_qty +msgid "Picking batch quantities" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__scan_count +msgid "Scan Count" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_batch_picking_form +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.stock_picking_batch_kanban +msgid "Start barcode interface" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__state +msgid "State" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_stock_barcodes_read_picking__picking_type_code +msgid "Type of Operation" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model_terms:ir.ui.view,arch_db:stock_barcodes_picking_batch.view_stock_barcodes_read_picking_batch_form +msgid "Validate" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields.selection,name:stock_barcodes_picking_batch.selection__wiz_stock_barcodes_read_picking__picking_type_code__incoming +msgid "Vendors" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_barcode_id +msgid "Wiz Barcode" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model.fields,field_description:stock_barcodes_picking_batch.field_wiz_candidate_picking_batch__wiz_picking_batch_id +msgid "Wizard Picking Batch" +msgstr "" + +#. module: stock_barcodes_picking_batch +#: model:ir.model,name:stock_barcodes_picking_batch.model_wiz_stock_barcodes_read_picking +msgid "Wizard to read barcode on picking batch" +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/__init__.py new file mode 100644 index 0000000..af98d9b --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/__init__.py @@ -0,0 +1,3 @@ +# Copyright 2019 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import stock_picking_batch diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/stock_picking_batch.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/stock_picking_batch.py new file mode 100644 index 0000000..ef89d7e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/models/stock_picking_batch.py @@ -0,0 +1,39 @@ +# Copyright 2019 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import models + + +class StockPickingBatch(models.Model): + _inherit = "stock.picking.batch" + + def action_barcode_scan(self): + first_picking = self.picking_ids[:1] + picking_type_code = first_picking.picking_type_code + option_group = first_picking.picking_type_id.barcode_option_group_id + vals = { + "picking_batch_id": self.id, + "res_model_id": self.env.ref( + "stock_picking_batch.model_stock_picking_batch" + ).id, + "res_id": self.id, + "picking_type_code": picking_type_code, + "option_group_id": option_group.id, + "picking_mode": "picking_batch", + } + if first_picking.picking_type_id.code == "outgoing": + vals["location_dest_id"] = first_picking.location_dest_id.id + if first_picking.picking_type_id.code == "incoming": + vals["location_id"] = first_picking.location_id.id + + if option_group.get_option_value("location_id", "filled_default"): + vals["location_id"] = first_picking.location_id.id + if option_group.get_option_value("location_dest_id", "filled_default"): + vals["location_dest_id"] = first_picking.location_dest_id.id + wiz = self.env["wiz.stock.barcodes.read.picking"].create(vals) + wiz.determine_todo_action() + wiz.fill_pending_moves() + action = self.env["ir.actions.act_window"]._for_xml_id( + "stock_barcodes_picking_batch.action_stock_barcodes_read_picking_batch" + ) + action["res_id"] = wiz.id + return action diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/CONTRIBUTORS.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..315c0d6 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ + +* `Tecnativa `_: + + * Sergio Teruel + * Carlos Dauden diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/DESCRIPTION.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/DESCRIPTION.rst new file mode 100644 index 0000000..c7d3210 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends barcode reader interface to allow to read quant barcodes. +After barcode has been readed the product, lot and location are been filled. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/USAGE.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/USAGE.rst new file mode 100644 index 0000000..b0b4bac --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/readme/USAGE.rst @@ -0,0 +1 @@ +Read usage section from stock_barcodes module. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/security/ir.model.access.csv b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/security/ir.model.access.csv new file mode 100644 index 0000000..e7ca78c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +stock_barcodes_picking_batch.access_wiz_candidate_picking_batch,stock_barcodes_picking_batch.access_wiz_candidate_picking_batch,model_wiz_candidate_picking_batch,base.group_user,1,1,1,1 diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/icon.png b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/icon.png new file mode 100644 index 0000000..3a0328b Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/icon.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/index.html b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/index.html new file mode 100644 index 0000000..93757dc --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/description/index.html @@ -0,0 +1,439 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Stock Barcodes Picking Batch

+ +

Beta License: AGPL-3 OCA/stock-logistics-barcode Translate me on Weblate Try me on Runboat

+

This module extends barcode reader interface to allow to read quant barcodes. +After barcode has been readed the product, lot and location are been filled.

+

Table of contents

+ +
+

Usage

+

Read usage section from stock_barcodes module.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Sergio Teruel
    • +
    • Carlos Dauden
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/stock-logistics-barcode project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_mixin.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_mixin.js new file mode 100644 index 0000000..e536fa6 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_mixin.js @@ -0,0 +1,17 @@ +/* Copyright 2022 Tecnativa - Sergio Teruel + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +odoo.define("stock_barcodes_picking_batch.BarcodesModelsMixin", function (require) { + "use strict"; + + const BarcodesModelsMixin = require("stock_barcodes.BarcodesModelsMixin"); + + var _barcode_models_picking_batch = [ + "stock.picking.batch", + "wiz.candidate.picking.batch", + ]; + BarcodesModelsMixin._barcode_models.push.apply( + BarcodesModelsMixin._barcode_models, + _barcode_models_picking_batch + ); +}); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_utils.esm.js b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_utils.esm.js new file mode 100644 index 0000000..dff2316 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/static/src/js/barcodes_models_utils.esm.js @@ -0,0 +1,7 @@ +/** @odoo-module */ +/* Copyright 2024 Tecnativa - Sergio Teruel + * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ + +import {barcodeModels} from "@stock_barcodes/utils/barcodes_models_utils.esm"; + +barcodeModels.push("stock.picking.batch", "wiz.candidate.picking.batch"); diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/__init__.py new file mode 100644 index 0000000..44056b6 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import test_stock_barcodes_picking_batch diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/test_stock_barcodes_picking_batch.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/test_stock_barcodes_picking_batch.py new file mode 100644 index 0000000..2372575 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/tests/test_stock_barcodes_picking_batch.py @@ -0,0 +1,154 @@ +# Copyright 2023 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import Command +from odoo.tests.common import tagged + +from odoo.addons.stock_barcodes.tests.test_stock_barcodes_picking import ( + TestStockBarcodesPicking, +) + + +@tagged("post_install", "-at_install") +class TestStockBarcodesPickingBatch(TestStockBarcodesPicking): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env( + context=dict( + cls.env.context, + mail_create_nolog=True, + mail_create_nosubscribe=True, + mail_notrack=True, + no_reset_password=True, + tracking_disable=True, + ) + ) + cls.ScanReadPicking = cls.env["wiz.stock.barcodes.read.picking"] + cls.stock_picking_model = cls.env.ref("stock.model_stock_picking") + cls.stock_picking_batch_model = cls.env.ref( + "stock_picking_batch.model_stock_picking_batch" + ) + + # Model Data + cls.barcode_option_group_out = cls._create_barcode_option_group_outgoing() + cls.barcode_option_group_out.barcode_guided_mode = False + + cls.partner_agrolite = cls.env.ref("base.res_partner_2") + cls.partner_gemini = cls.env.ref("base.res_partner_3") + cls.picking_type_out = cls.env.ref("stock.picking_type_out") + cls.picking_type_out.reservation_method = "manual" + cls.picking_type_out.barcode_option_group_id = cls.barcode_option_group_out + cls.customer_location = cls.env.ref("stock.stock_location_customers") + cls.stock_location = cls.env.ref("stock.stock_location_stock") + cls.picking_out1_bp = ( + cls.env["stock.picking"] + .with_context(planned_picking=True) + .create( + { + "location_id": cls.stock_location.id, + "location_dest_id": cls.customer_location.id, + "partner_id": cls.partner_agrolite.id, + "picking_type_id": cls.picking_type_out.id, + "move_ids": [ + Command.create( + { + "name": cls.product_wo_tracking.name, + "product_id": cls.product_wo_tracking.id, + "product_uom_qty": 3, + "product_uom": cls.product_wo_tracking.uom_id.id, + "location_id": cls.stock_location.id, + "location_dest_id": cls.customer_location.id, + } + ) + ], + } + ) + ) + cls.picking_out2_bp = cls.picking_out1_bp.copy() + + # Create a wizard for outgoing picking + cls.picking_out1_bp.action_confirm() + cls.picking_out2_bp.partner_id = cls.partner_gemini + cls.picking_out2_bp.action_confirm() + + # Create a batch picking with picking1 and picking 2 + cls.picking_batch = cls.env["stock.picking.batch"].create( + {"name": "picking batch for test"} + ) + cls.picking_out1_bp.batch_id = cls.picking_batch + cls.picking_out2_bp.batch_id = cls.picking_batch + cls.picking_batch.action_confirm() + + action = cls.picking_batch.action_barcode_scan() + cls.wiz_scan_picking_batch = cls.ScanReadPicking.browse(action["res_id"]) + + @classmethod + def _create_quant_for_product(cls, location, product, qty=100.00): + cls.env["stock.quant"].create( + { + "product_id": product.id, + "location_id": location.id, + "quantity": qty, + } + ) + + def test_wiz_scan_picking_batch_values(self): + self.assertEqual( + self.wiz_scan_picking_batch.location_id, self.picking_out_01.location_id + ) + self.assertEqual( + self.wiz_scan_picking_batch.res_model_id, self.stock_picking_batch_model + ) + self.assertEqual(self.wiz_scan_picking_batch.res_id, self.picking_batch.id) + self.assertIn( + "Barcode reader - %s - " % (self.picking_batch.name), + self.wiz_scan_picking_batch.display_name, + ) + + def test_picking_batch_wizard_scan_product(self): + self._create_quant_for_product(self.stock_location, self.product_wo_tracking) + self.picking_batch.action_assign() + wiz_scan_picking_batch = self.wiz_scan_picking_batch.with_context( + force_create_move=True + ) + self.action_barcode_scanned(wiz_scan_picking_batch, "8480000723208") + sml = self.picking_batch.move_line_ids.filtered( + lambda x: x.product_id == self.product_wo_tracking + ) + self.assertEqual(sum(sml.mapped("qty_done")), 1.0) + + def test_picking_batch_wizard_scan_more_product_than_needed(self): + self._create_quant_for_product(self.stock_location, self.product_wo_tracking) + self.picking_batch.action_assign() + + # Modify some scan wizard behavior + self.barcode_option_group_out.manual_entry = True + self.barcode_option_group_out.is_manual_qty = True + self.barcode_option_group_out.is_manual_confirm = True + self.barcode_option_group_out.show_pending_moves = True + + action = self.picking_batch.action_barcode_scan() + self.wiz_scan_picking_batch = self.ScanReadPicking.browse(action["res_id"]) + wiz_scan_picking_batch = self.wiz_scan_picking_batch.with_context( + force_create_move=True + ) + self.action_barcode_scanned(wiz_scan_picking_batch, "8480000723208") + wiz_scan_picking_batch.product_qty = 6 + wiz_scan_picking_batch.action_confirm() + + # Asserts + sml = self.picking_batch.move_line_ids.filtered( + lambda x: x.product_id == self.product_wo_tracking + ) + self.assertEqual(sum(sml.mapped("qty_done")), 6.0) + + # Check that all qty's have included in pickings + self.action_barcode_scanned(wiz_scan_picking_batch, "8480000723208") + wiz_scan_picking_batch.product_qty = 9 + wiz_scan_picking_batch.action_confirm() + + # Asserts + sml = self.picking_batch.move_line_ids.filtered( + lambda x: x.product_id == self.product_wo_tracking + ) + self.assertEqual(sum(sml.mapped("qty_done")), 15.0) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/views/stock_picking_batch_views.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/views/stock_picking_batch_views.xml new file mode 100644 index 0000000..b9de21c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/views/stock_picking_batch_views.xml @@ -0,0 +1,41 @@ + + + + stock.picking.batch + + +
+ +
+
+
+ + stock.picking.batch + + + + + + + +
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/__init__.py new file mode 100644 index 0000000..26ea3c0 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/__init__.py @@ -0,0 +1,3 @@ +# Copyright 2021 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import stock_barcodes_read_picking_batch diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py new file mode 100644 index 0000000..52197aa --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch.py @@ -0,0 +1,358 @@ +# Copyright 2019 Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import logging + +from odoo import _, api, fields, models +from odoo.tools.float_utils import float_compare + +_logger = logging.getLogger(__name__) + + +class WizStockBarcodesReadPickingBatch(models.TransientModel): + _inherit = "wiz.stock.barcodes.read.picking" + _description = "Wizard to read barcode on picking batch" + + picking_batch_id = fields.Many2one( + comodel_name="stock.picking.batch", string="Picking Batch", readonly=True + ) + candidate_picking_batch_ids = fields.One2many( + comodel_name="wiz.candidate.picking.batch", + inverse_name="wiz_barcode_id", + string="Candidate picking batch", + readonly=True, + ) + # TODO: Remove this field + picking_batch_product_qty = fields.Float( + string="Picking batch quantities", + digits="Product Unit of Measure", + readonly=True, + ) + picking_type_code = fields.Selection( + [("incoming", "Vendors"), ("outgoing", "Customers"), ("internal", "Internal")], + "Type of Operation", + ) + confirmed_moves = fields.Boolean(string="Confirmed moves") + picking_mode = fields.Selection( + selection_add=[("picking_batch", "Picking batch mode")], + ondelete={"picking_batch": "set picking"}, + ) + + def name_get(self): + if self.picking_mode != "picking_batch": + return super().name_get() + return [ + ( + rec.id, + "{} - {} - {}".format( + _("Barcode reader"), + rec.picking_batch_id.name or rec.picking_type_code, + self.env.user.name, + ), + ) + for rec in self + ] + + def _set_default_picking_batch(self): + picking_batch_id = self.env.context.get("default_picking_batch_id", False) + if picking_batch_id: + self._set_candidate_picking_batchs( + self.env["stock.picking.batch"].browse(picking_batch_id) + ) + + def _compute_move_line_ids(self): + if self.picking_mode != "picking_batch": + return super( + WizStockBarcodesReadPickingBatch, self + )._compute_move_line_ids() + self.move_line_ids = self.picking_batch_id.move_line_ids.filtered( + "qty_done" + ).sorted("write_date", reverse=True) + + @api.model + def create(self, vals): + # When user click any view button the wizard record is create and the + # picking batch candidates have been lost, so we need set it. + wiz = super().create(vals) + if wiz.picking_batch_id: + wiz._set_candidate_picking_batchs(wiz.picking_batch_id) + return wiz + + @api.onchange("picking_batch_id") + def onchange_picking_batch_id(self): + # Add to candidate picking batchs the default picking batch. + # We are in a wizard view, so for create a candidate picking batch + # with the same default picking batch we need create it in this onchange + self._set_default_picking_batch() + self.determine_todo_action() + + def get_sorted_move_lines(self, move_lines): + if self.picking_mode != "picking_batch": + return super().get_sorted_move_lines(move_lines) + if self.picking_batch_id.picking_ids[:1].picking_type_code in [ + "incoming", + ]: + location_field = "location_dest_id" + else: + location_field = "location_id" + move_lines = move_lines.sorted( + lambda ml: ( + ml[location_field].posx, + ml[location_field].posy, + ml[location_field].posz, + ml[location_field].name, + ) + ) + return move_lines + + def get_moves_or_move_lines(self): + if self.picking_mode != "picking_batch": + return super().get_moves_or_move_lines() + if self.option_group_id.source_pending_moves == "move_line_ids": + return self.picking_batch_id.move_line_ids.filtered(lambda ln: ln.move_id) + else: + return self.picking_batch_id.move_ids + + def update_fields_after_determine_todo(self, move_line): + if self.picking_mode != "picking_batch": + return super().update_fields_after_determine_todo(move_line) + self.picking_batch_product_qty = move_line.qty_done + + def _prepare_stock_moves_domain(self): + domain = super()._prepare_stock_moves_domain() + if self.picking_batch_id: + domain.append(("picking_id", "in", self.picking_batch_id.picking_ids.ids)) + return domain + + def _set_candidate_picking_batchs(self, candidate_picking_batchs): + vals = [(5, 0, 0)] + vals.extend( + [(0, 0, {"picking_batch_id": p.id}) for p in candidate_picking_batchs] + ) + self.candidate_picking_batch_ids = vals + + def _search_candidate_picking_batch(self, moves_todo=False): + if not moves_todo: + moves_todo = self.env["stock.move"].search( + self._prepare_stock_moves_domain() + ) + if not self.picking_batch_id: + candidate_picking_batchs = moves_todo.mapped("picking_id.batch_id") + candidate_picking_batch_count = len(candidate_picking_batchs) + if candidate_picking_batch_count > 1: + self._set_candidate_picking_batchs(candidate_picking_batchs) + return False + if candidate_picking_batch_count == 1: + self.picking_batch_id = candidate_picking_batchs + self._set_candidate_picking_batchs(candidate_picking_batchs) + _logger.info("No picking batch assigned") + return True + + def update_fields_after_process_stock(self, moves): + if self.picking_mode != "picking_batch": + return super().update_fields_after_process_stock(moves) + self.picking_batch_product_qty = sum(moves.mapped("quantity_done")) + + def _candidate_picking_batch_selected(self): + if len(self.candidate_picking_batch_ids) == 1: + return self.candidate_picking_batch_ids.picking_batch_id + else: + return self.env["stock.picking.batch"].browse() + + def check_done_conditions(self): + res = super().check_done_conditions() + if self.picking_mode != "picking_batch": + return res + if not self.picking_batch_id: + if not self._search_candidate_picking_batch(): + self._set_messagge_info( + "info", _("Click on picking batch pushpin to lock it") + ) + return False + if ( + self.picking_batch_id + and self.picking_batch_id != self._candidate_picking_batch_selected() + ): + self._set_messagge_info( + "info", _("Click on picking batch pushpin to lock it") + ) + return False + return res + + def action_back(self): + action = super().action_back() + if self.picking_mode == "picking_batch": + action["views"] = [ + ( + self.env.ref( + "stock_barcodes_picking_batch.stock_batch_picking_form" + ).id, + "form", + ) + ] + return action + + def create_new_stock_move_line(self, moves_todo, available_qty): + if self.picking_mode != "picking_batch" or self.env.context.get( + "skip_split_quantity_between_moves", False + ): + return super().create_new_stock_move_line(moves_todo, available_qty) + to_do = self.todo_line_ids.filtered( + lambda ln: ln.state == "pending" + and ln.product_id == self.product_id + and ln.qty_done < ln.product_uom_qty + ) + if to_do.line_ids: + moves = to_do.line_ids.filtered( + lambda ln: ln.barcode_scan_state == "pending" + ) + else: + moves = to_do.stock_move_ids.filtered( + lambda ln: ln.ln.quantity_done < ln.product_uom_qty + ) + # TODO: split between all lines + sml = self.env["stock.move.line"].browse() + for move in moves: + move_qty_done = ( + "qty_done" if move._name == "stock.move.line" else "quantity_done" + ) + if move.product_uom_qty: + assigned_qty = min( + max(move.product_uom_qty - move[move_qty_done], 0.0), available_qty + ) + else: + assigned_qty = available_qty + available_qty -= assigned_qty + if move == moves[-1:] and ( + float_compare( + available_qty, 0, precision_rounding=self.product_id.uom_id.rounding + ) + > 0 + ): + # Assig all to last move + assigned_qty += available_qty + sml += self.env["stock.move.line"].create( + self.with_context(picking=move.picking_id)._prepare_move_line_values( + move.move_id if move._name == "stock.move.line" else move, + assigned_qty, + ) + ) + if available_qty: + # What do I do with the extra quantities? + # By moment I assign all to the last picking + last_move = self.picking_batch_id.move_ids.filtered( + lambda mv: mv.product_id == self.product_id + )[-1] + sml += self.env["stock.move.line"].create( + self.with_context( + picking=last_move.picking_id + )._prepare_move_line_values( + last_move, + available_qty, + ) + ) + return sml + + +class WizCandidatePickingBatch(models.TransientModel): + """ + TODO: explain + """ + + _name = "wiz.candidate.picking.batch" + _description = "Candidate picking batchs for barcode interface" + + # To prevent remove the record wizard until 2 days old + _transient_max_hours = 48 + + wiz_barcode_id = fields.Many2one( + comodel_name="wiz.stock.barcodes.read.picking", readonly=True + ) + picking_batch_id = fields.Many2one( + comodel_name="stock.picking.batch", string="Picking batch", readonly=True + ) + wiz_picking_batch_id = fields.Many2one( + comodel_name="stock.picking.batch", + related="wiz_barcode_id.picking_batch_id", + string="Wizard Picking Batch", + readonly=True, + ) + name = fields.Char( + related="picking_batch_id.name", readonly=True, string="Candidate Picking Batch" + ) + state = fields.Selection(related="picking_batch_id.state", readonly=True) + date = fields.Datetime( + related="picking_batch_id.create_date", readonly=True, string="Creation Date" + ) + product_ref_count = fields.Integer( + compute="_compute_product_ref_count", string="#Product Ref:" + ) + product_ref_done = fields.Integer( + compute="_compute_product_ref_count", string="#Product Ref done:" + ) + # For reload kanban view + scan_count = fields.Integer() + is_pending = fields.Boolean(compute="_compute_is_pending") + + @api.depends("scan_count") + def _compute_product_ref_count(self): + for candidate in self: + bp_products = set(candidate.picking_batch_id.move_ids.mapped("product_id")) + bp_products_pending = set( + candidate.picking_batch_id.move_ids.filtered( + lambda ln: ln.quantity_done < ln.product_uom_qty + ).mapped("product_id") + ) + candidate.update( + { + "product_ref_count": len(bp_products), + "product_ref_done": len(bp_products - bp_products_pending), + } + ) + + @api.depends("scan_count") + def _compute_is_pending(self): + for rec in self: + rec.is_pending = bool( + rec.picking_batch_id.move_line_ids.filtered( + lambda ln: ln.barcode_scan_state == "pending" + ) + ) + + def _get_wizard_barcode_read(self): + return self.env["wiz.stock.barcodes.read.picking"].browse( + self.env.context["wiz_barcode_id"] + ) + + def action_lock_picking(self): + wiz = self._get_wizard_barcode_read() + picking_id = self.env.context["picking_id"] + wiz.picking_id = picking_id + wiz._set_candidate_picking_batchs(wiz.picking_id) + return wiz.action_done() + + def action_unlock_picking_batch(self): + wiz = self._get_wizard_barcode_read() + wiz.update( + { + "picking_batch_id": False, + "candidate_picking_batch_ids": False, + "message_type": False, + "message": False, + } + ) + return wiz.action_cancel() + + def action_validate_picking_batch(self): + picking_batch = self.env["stock.picking.batch"].browse( + self.env.context.get("picking_batch_id", False) + ) + picking_batch.action_done() + return self.env["ir.actions.actions"]._for_xml_id( + "stock_barcodes.action_stock_barcodes_action_client" + ) + + def action_open_picking_batch(self): + picking_batch = self.env["stock.picking.batch"].browse( + self.env.context.get("picking_batch_id", False) + ) + return picking_batch.get_formview_action() diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch_views.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch_views.xml new file mode 100644 index 0000000..9992a20 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_barcodes_picking_batch/stock_barcodes_picking_batch/wizard/stock_barcodes_read_picking_batch_views.xml @@ -0,0 +1,344 @@ + + + + stock.barcodes.read.picking.batch.form + wiz.stock.barcodes.read.picking + + primary + 60 + + + + + + + + + + + + + + + +
+ + +
+
+
+
+
+ + + + +
+
+
+ #Ref: + + + + | + #Read: + + + +
+
+
+
+ + + +
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ Lot: +
+ +
+ Package: +
+
+
+ + + + +
+
+
+
+
+ + + wiz.stock.barcodes.read.picking + Barcodes Read + form + {"control_panel_hidden": True, + "form_view_initial_mode": "edit"} + + + current + +
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/README.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/README.md new file mode 100644 index 0000000..b7c0438 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/README.md @@ -0,0 +1,46 @@ +# Stock Picking Product Barcode Report + +Odoo addon: stock_picking_product_barcode_report + +## Installation + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report +``` + +## Dependencies + +This addon depends on: +- stock + +## Manifest Information + +- **Name**: Stock Picking Product Barcode Report +- **Version**: 16.0.1.0.2 +- **Category**: Extra Tools +- **License**: AGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/stock-logistics-barcode](https://github.com/OCA/stock-logistics-barcode) branch 16.0, addon `stock_picking_product_barcode_report`. + +## License + +This package maintains the original AGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/ARCHITECTURE.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/ARCHITECTURE.md new file mode 100644 index 0000000..d72815b --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph Stock_picking_product_barcode_report Module - stock_picking_product_barcode_report + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONFIGURATION.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONFIGURATION.md new file mode 100644 index 0000000..319d743 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for stock_picking_product_barcode_report. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONTROLLERS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONTROLLERS.md new file mode 100644 index 0000000..ff097c0 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/CONTROLLERS.md @@ -0,0 +1,17 @@ +# Controllers + +HTTP routes provided by this module. + +```mermaid +sequenceDiagram + participant U as User/Client + participant C as Module Controllers + participant O as ORM/Views + + U->>C: HTTP GET/POST (routes) + C->>O: ORM operations, render templates + O-->>U: HTML/JSON/PDF +``` + +Notes +- See files in controllers/ for route definitions. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/DEPENDENCIES.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/DEPENDENCIES.md new file mode 100644 index 0000000..83fb42f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [stock](../../odoo-bringout-oca-ocb-stock) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/FAQ.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/FAQ.md new file mode 100644 index 0000000..e238762 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon stock_picking_product_barcode_report or install in UI. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/INSTALL.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/INSTALL.md new file mode 100644 index 0000000..c1d8aaa --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report" +# or +uv pip install odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report" +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/MODELS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/MODELS.md new file mode 100644 index 0000000..c8f1df3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/MODELS.md @@ -0,0 +1,15 @@ +# Models + +Detected core models and extensions in stock_picking_product_barcode_report. + +```mermaid +classDiagram + class ir_actions_report + class product_packaging + class res_company + class res_config_settings +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/OVERVIEW.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/OVERVIEW.md new file mode 100644 index 0000000..52931ec --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: stock_picking_product_barcode_report. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon stock_picking_product_barcode_report +- License: LGPL-3 diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/REPORTS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/REPORTS.md new file mode 100644 index 0000000..b32c4e3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/REPORTS.md @@ -0,0 +1,32 @@ +# Reports + +Report definitions and templates in stock_picking_product_barcode_report. + +```mermaid +classDiagram +``` + +## Available Reports + +### PDF/Document Reports +- **Label Impresion** (PDF/Print) +- **Label Quant Package** (PDF/Print) +- **Label Quant Report** (PDF/Print) +- **Labels package content** (PDF/Print) +- **Custom Label Impresion** (PDF/Print) +- **Label report** (PDF/Print) + + +## Report Files + +- **report_base_label.xml** (XML template/definition) +- **report_label_barcode_quant_package_template.xml** (XML template/definition) +- **report_label_barcode_template.xml** (XML template/definition) +- **report_label_barcode.xml** (XML template/definition) +- **report_label_custom.xml** (XML template/definition) + +## Notes +- Named reports above are accessible through Odoo's reporting menu +- Python files define report logic and data processing +- XML files contain report templates, definitions, and formatting +- Reports are integrated with Odoo's printing and email systems diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/SECURITY.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/SECURITY.md new file mode 100644 index 0000000..6e6b74e --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in stock_picking_product_barcode_report. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../stock_picking_product_barcode_report/security/ir.model.access.csv)** + - 2 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../stock_picking_product_barcode_report/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/USAGE.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/USAGE.md new file mode 100644 index 0000000..92cfec7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon stock_picking_product_barcode_report +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/WIZARDS.md b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/WIZARDS.md new file mode 100644 index 0000000..9edf590 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/doc/WIZARDS.md @@ -0,0 +1,9 @@ +# Wizards + +Transient models exposed as UI wizards in stock_picking_product_barcode_report. + +```mermaid +classDiagram + class ProductPrintingQty + class WizStockBarcodeSelectionPrinting +``` diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/pyproject.toml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/pyproject.toml new file mode 100644 index 0000000..d799cf0 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report" +version = "16.0.0" +description = "Stock Picking Product Barcode Report - It provides a wizard to select how many barcodes print." +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-stock>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["stock_picking_product_barcode_report"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/README.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/README.rst new file mode 100644 index 0000000..f9fdbd3 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/README.rst @@ -0,0 +1,113 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + +==================================== +Stock Picking Product Barcode Report +==================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:c908a00d071643425e60eb44e323691d3c8360355b9e1a918148f467ae9e5bb7 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--barcode-lightgray.png?logo=github + :target: https://github.com/OCA/stock-logistics-barcode/tree/16.0/stock_picking_product_barcode_report + :alt: OCA/stock-logistics-barcode +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/stock-logistics-barcode-16-0/stock-logistics-barcode-16-0-stock_picking_product_barcode_report + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-barcode&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to select how many copies of barcode labels do you want +to print. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +#. You can define other reports to print checking the option 'Barcode Label' on report + record. +#. You can select a default report on 'Settings > Inventory > Barcode format > Default + template for barcode labels'. There will only appear the reports with the option + 'Barcode Label' checked. +#. Go to 'Settings > Inventory > Barcode format' and select on 'Method to choose the + barcode formating' the value 'Display GS1_128 format for barcodes' or let it blank + for normal use of barcodes on Odoo. + +Usage +===== + +#. Create a new transfer with a product with 'Barcode'. +#. Validate it. +#. Click on 'Print > Print Barcode Labels'. +#. Select how many labels do you want for each product. +#. Click on 'Print' and open the pdf with the labels. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Carlos Roca + * Sergio Teruel + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-CarlosRoca13| image:: https://github.com/CarlosRoca13.png?size=40px + :target: https://github.com/CarlosRoca13 + :alt: CarlosRoca13 + +Current `maintainer `__: + +|maintainer-CarlosRoca13| + +This module is part of the `OCA/stock-logistics-barcode `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__init__.py new file mode 100644 index 0000000..1567185 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__init__.py @@ -0,0 +1,6 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import controllers +from . import models +from . import wizard diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__manifest__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__manifest__.py new file mode 100644 index 0000000..2abe709 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/__manifest__.py @@ -0,0 +1,28 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Stock Picking Product Barcode Report", + "summary": "It provides a wizard to select how many barcodes print.", + "version": "16.0.1.0.2", + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/stock-logistics-barcode", + "license": "AGPL-3", + "maintainers": ["CarlosRoca13"], + "category": "Extra Tools", + "depends": ["stock"], + "external_dependencies": {"python": ["python-barcode"]}, + "data": [ + "security/ir.model.access.csv", + "views/res_config_settings_view.xml", + "data/paperformat_label.xml", + "wizard/stock_barcode_selection_printing_view.xml", + "report/report_base_label.xml", + "report/report_label_barcode.xml", + "report/report_label_barcode_quant_package_template.xml", + "report/report_label_barcode_template.xml", + "report/report_label_custom.xml", + "views/ir_actions_report_view.xml", + "views/product_views.xml", + ], + "installable": True, +} diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/__init__.py new file mode 100644 index 0000000..12a7e52 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/__init__.py @@ -0,0 +1 @@ +from . import main diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/main.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/main.py new file mode 100644 index 0000000..67c6ccb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/controllers/main.py @@ -0,0 +1,69 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +import barcode # pylint: disable=missing-manifest-dependency +from barcode.writer import SVGWriter # pylint: disable=missing-manifest-dependency + +from odoo import http +from odoo.http import request + +from odoo.addons.web.controllers.report import ReportController + + +class ReportController(ReportController): + @http.route() + def report_barcode( + self, + barcode_type, + value, + width=600, + height=100, + humanreadable=0, + quiet=1, + ): + if barcode_type == "gs1_128": + Gs1_128 = barcode.get_barcode_class("gs1_128") + writer = SVGWitoutTextWriter(module_max_height=height) + gs1_128 = Gs1_128(str(value), writer=writer) + image = gs1_128.render( + writer_options={"module_width": 0.5, "quiet_zone": 0.5} + ) + return request.make_response( + image, headers=[("Content-Type", "image/svg+xml")] + ) + return super().report_barcode( + barcode_type, + value, + width=width, + height=height, + humanreadable=humanreadable, + quiet=quiet, + ) + + +class SVGWitoutTextWriter(SVGWriter): + """This class extend the SVGWriter of python-barcode to delete the text on + the barcode image generated by this addon.""" + + module_max_height: int + + def __init__(self, module_max_height=100) -> None: + super().__init__() + self.module_max_height = module_max_height + + def _create_module(self, xpos, ypos, width, color): + # Background rect has been provided already, so skipping "spaces" + if color != self.background: + element = self._document.createElement("rect") + attributes = { + "x": "{:.3f}mm".format(xpos), + "y": "{:.3f}mm".format(ypos), + "width": "{:.3f}mm".format(width), + "height": str(self.module_max_height), + "style": f"fill:{color}", + } + for key, value in attributes.items(): + element.setAttribute(key, value) + self._group.appendChild(element) + + def _create_text(self, xpos, ypos): + pass diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/data/paperformat_label.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/data/paperformat_label.xml new file mode 100644 index 0000000..d2b97d5 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/data/paperformat_label.xml @@ -0,0 +1,46 @@ + + + + Label paperformat + custom + 29 + 47 + Portrait + 2 + 0 + 0 + 0 + + 0 + 90 + + + Label paperformat for quant packages + custom + 104 + 154 + Landscape + 2 + 0 + 0 + 0 + + 0 + 90 + + + Label paperformat for custom labels + + custom + 140 + 90 + Portrait + 2 + 0 + 0 + 0 + + 0 + 200 + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/bs.po b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/bs.po new file mode 100644 index 0000000..6ab9626 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/bs.po @@ -0,0 +1,363 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_product_barcode_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +msgid "/ Lot:" +msgstr "/ Serija:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Life date: " +msgstr "Datum isteka: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Lot: " +msgstr "Serija: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Partner Ref: " +msgstr "Ref. partnera: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Quantity: " +msgstr "Količina: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Weight:" +msgstr "Masa:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Format\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Report\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Label Quantity\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Language\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Barcode" +msgstr "Barkod" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_format +msgid "Barcode Format" +msgstr "Format barkoda" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Barcode format" +msgstr "Format barkoda" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_barcode_label +msgid "Barcode label" +msgstr "Etiketa barkoda" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Cancel" +msgstr "Otkaži" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_company +msgid "Companies" +msgstr "Kompanije" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_config_settings +msgid "Config Settings" +msgstr "Postavke" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_custom_report +msgid "Custom Label Impresion" +msgstr "Prilagođeno štampanje etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_custom_label +msgid "Custom label" +msgstr "Prilagođena etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_default_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_default_report +msgid "Default template for barcode labels" +msgstr "Zadani template za etikete barkodova" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__result_package_id +msgid "Dest. package" +msgstr "Odred. pakovanje" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__res_company__barcode_report_default_format__gs1_128 +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__stock_picking_print__barcode_format__gs1_128 +msgid "Display GS1_128 format for barcodes" +msgstr "Prikaži GS1_128 format za barkodove" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__display_name +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__display_name +msgid "Display Name" +msgstr "Prikazani naziv" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Fill info of label..." +msgstr "Popuni podatke etikete..." + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Format of the barcode when it is printed." +msgstr "Format barkoda kada se štampa." + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__html_content +msgid "Html Content" +msgstr "Html sadržaj" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__id +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__id +msgid "ID" +msgstr "ID" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,help:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "" +"If checked, Odoo take into account the units included in the packaging to " +"compute number of labels" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__is_custom_label +msgid "Is Custom Label" +msgstr "Je prilagođena etiketa" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "It only appears here products with barcode defined" +msgstr "Ovdje se pojavljuju samo proizvodi sa definiranim barkodom" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report +msgid "Label Impresion" +msgstr "Štampanje etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__label_qty +msgid "Label Qty" +msgstr "Količina etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report_quant_package +msgid "Label Quant Package" +msgstr "Etiketa količinskog pakovanja" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_quant +msgid "Label Quant Report" +msgstr "Izvještaj etiketa količina" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_report_base_label +msgid "Label report" +msgstr "Izvještaj etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_package +msgid "Labels package content" +msgstr "Sadržaj etiketa pakovanja" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__lang +msgid "Lang" +msgstr "Jezik" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print____last_update +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print____last_update +msgid "Last Modified on" +msgstr "Zadnje mijenjano" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__lot_id +msgid "Lot/Serial Number" +msgstr "Lot/Serijski broj" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_report_default_format +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_report_default_format +msgid "Method to choose the barcode formating" +msgstr "Metoda za izbor formatiranja barkoda" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__move_line_id +msgid "Move" +msgstr "Kretanje" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__product_print_moves +msgid "Moves" +msgstr "Kretanja" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_packaging_id +msgid "Packaging" +msgstr "Pakovanje" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__picking_ids +msgid "Picking" +msgstr "Skladišnice" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Print" +msgstr "Ispis" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "Print One Label By Item" +msgstr "Štampaj jednu etiketu po stavci" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_line_print +msgid "Print Picking Line" +msgstr "Štampaj liniju preuzimanja" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_lot +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_quant +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_sml +msgid "Print barcode labels" +msgstr "Štampaj etikete sa barkodom" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_id +msgid "Product" +msgstr "Artikal" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_product_packaging +msgid "Product Packaging" +msgstr "Pakiranje proizvoda" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__quantity +msgid "Quantity" +msgstr "Količina" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__label_qty +msgid "Quantity of Labels" +msgstr "Količina etiketa" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_ir_actions_report +msgid "Report Action" +msgstr "Akcija izvještaja" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_report +msgid "Report to print" +msgstr "Izvještaj za štampanje" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select format of barcode display" +msgstr "Izaberi format prikaza barkoda" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select report for barcode display" +msgstr "Izaberi izvještaj za prikaz barkoda" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__stock_move_line_ids +msgid "Stock Move Line" +msgstr "Linija premještanja zaliha" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__uom_id +msgid "Unit of Measure" +msgstr "Jedinica mjere" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__wizard_id +msgid "Wizard" +msgstr "ID čarobnjaka" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_print +msgid "Wizard to select how many barcodes have to be printed" +msgstr "Čarobnjak za izbor broja barkodova za štampanje" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "You can print just the products with assigned barcode" +msgstr "Možete štampati samo proizvode sa dodijeljenim barkodom" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/es.po b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/es.po new file mode 100644 index 0000000..6e35186 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/es.po @@ -0,0 +1,380 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_product_barcode_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-07 07:23+0000\n" +"PO-Revision-Date: 2024-03-07 08:24+0100\n" +"Last-Translator: Sergio Teruel \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.1\n" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +msgid "/ Lot:" +msgstr "/ Lote:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Life date: " +msgstr "Fecha de caducidad: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Lot: " +msgstr "Lote: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Partner Ref: " +msgstr "Empresa: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Quantity: " +msgstr "Cantidad" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Weight:" +msgstr "Peso:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Format\n" +"
" +msgstr "" +"Formato de código de barras\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Report\n" +"
" +msgstr "" +"Informe de código de barras\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Label Quantity\n" +"
" +msgstr "" +"Cantidad de etiquetas\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Language\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Barcode" +msgstr "Código de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_format +msgid "Barcode Format" +msgstr "Formato de Código de barras" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Barcode format" +msgstr "Formato de Código de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_barcode_label +msgid "Barcode label" +msgstr "Etiqueta de código de barras" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Cancel" +msgstr "Cancelar" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_custom_report +msgid "Custom Label Impresion" +msgstr "Impresión de etiquetas personalizadas" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_custom_label +msgid "Custom label" +msgstr "Etqueta personalizada" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_default_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_default_report +msgid "Default template for barcode labels" +msgstr "Plantilla para etiquetas de códigos de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__result_package_id +msgid "Dest. package" +msgstr "Paquete destino" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__res_company__barcode_report_default_format__gs1_128 +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__stock_picking_print__barcode_format__gs1_128 +msgid "Display GS1_128 format for barcodes" +msgstr "Mostrar códigos de barras en formato GS1_128" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__display_name +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Fill info of label..." +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Format of the barcode when it is printed." +msgstr "Formato de impresión de códigos de barras." + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__html_content +msgid "Html Content" +msgstr "Contenido html" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__id +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__id +msgid "ID" +msgstr "ID" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,help:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "" +"If checked, Odoo take into account the units included in the packaging to " +"compute number of labels" +msgstr "" +"Si está marcado, Odoo tiene en cuenta las unidades incluidas en el paquete " +"para calcular la cantidad de etiquetas" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__is_custom_label +msgid "Is Custom Label" +msgstr "Es etiqueta personalizada" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "It only appears here products with barcode defined" +msgstr "" +"Aquí van a aparecer únicamente los productos que tengan el código de barras " +"definido" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report +msgid "Label Impresion" +msgstr "Impresión de etiquetas" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__label_qty +msgid "Label Qty" +msgstr "Cantidad de etiquetas" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report_quant_package +msgid "Label Quant Package" +msgstr "Etiquetas de paquetes" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_quant +msgid "Label Quant Report" +msgstr "Informe de etiquetas de paquetes" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_report_base_label +msgid "Label report" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_package +msgid "Labels package content" +msgstr "Código de barras del contenido" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__lang +msgid "Lang" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print____last_update +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__lot_id +msgid "Lot/Serial Number" +msgstr "Lote/Nº de serie" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_report_default_format +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_report_default_format +msgid "Method to choose the barcode formating" +msgstr "Método para el elegir el formato de código de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__move_line_id +msgid "Move" +msgstr "Asiento" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__product_print_moves +msgid "Moves" +msgstr "Movimientos" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_packaging_id +msgid "Packaging" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__picking_ids +msgid "Picking" +msgstr "Albarán" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Print" +msgstr "Imprimir" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "Print One Label By Item" +msgstr "Imprimir una etiqueta por elemento" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_line_print +msgid "Print Picking Line" +msgstr "Imprimir linea de albarán" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_lot +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_quant +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_sml +msgid "Print barcode labels" +msgstr "Imprimir etiquetas de códigos de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_id +msgid "Product" +msgstr "Producto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_product_packaging +msgid "Product Packaging" +msgstr "Empaquetado del producto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__quantity +msgid "Quantity" +msgstr "Cantidad" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__label_qty +msgid "Quantity of Labels" +msgstr "Cantidad de etiquetas" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_ir_actions_report +msgid "Report Action" +msgstr "Acción de informe" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_report +msgid "Report to print" +msgstr "Informe a imprimir" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select format of barcode display" +msgstr "Selecciona el formato de código de barras" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select report for barcode display" +msgstr "Selecciona el informe para imprimir el código de barras" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__stock_move_line_ids +msgid "Stock Move Line" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__uom_id +msgid "Unit of Measure" +msgstr "Unidad de medida" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__wizard_id +msgid "Wizard" +msgstr "Asistente" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_print +msgid "Wizard to select how many barcodes have to be printed" +msgstr "" +"Ventana emergente para seleccionar la cantidad de códigos de barras a " +"imprimir" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "You can print just the products with assigned barcode" +msgstr "" +"Sólo vas a poder imprimir los productos con un código de barras asignado" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/it.po b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/it.po new file mode 100644 index 0000000..376958c --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/it.po @@ -0,0 +1,378 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_product_barcode_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-30 14:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +msgid "/ Lot:" +msgstr "/ Lotto:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Life date: " +msgstr "Data vita: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Lot: " +msgstr "Lotto: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Partner Ref: " +msgstr "Rif partner: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Quantity: " +msgstr "Quantità: " + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Weight:" +msgstr "Peso:" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Format\n" +"
" +msgstr "" +"Formato codice a barre\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Report\n" +"
" +msgstr "" +"Resoconto codice a barre\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Label Quantity\n" +"
" +msgstr "" +"Etichetta quantità\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Language\n" +"
" +msgstr "" +"Lingua\n" +"
" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Barcode" +msgstr "Codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_format +msgid "Barcode Format" +msgstr "Formato codice a barre" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Barcode format" +msgstr "Formato codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_barcode_label +msgid "Barcode label" +msgstr "Etichetta codice a barre" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Cancel" +msgstr "Annulla" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_config_settings +msgid "Config Settings" +msgstr "Impostazioni configurazione" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_custom_report +msgid "Custom Label Impresion" +msgstr "Immagine etichetta personalizzata" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_custom_label +msgid "Custom label" +msgstr "Etichetta personalizzata" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_default_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_default_report +msgid "Default template for barcode labels" +msgstr "Modello predefinito per etichette codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__result_package_id +msgid "Dest. package" +msgstr "Collo destinazione" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__res_company__barcode_report_default_format__gs1_128 +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__stock_picking_print__barcode_format__gs1_128 +msgid "Display GS1_128 format for barcodes" +msgstr "Visualizza formato GS1_128 per codici a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__display_name +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Fill info of label..." +msgstr "Inserisci nell'etichetta..." + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Format of the barcode when it is printed." +msgstr "Formato del codice a barre quando viene stampato." + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__html_content +msgid "Html Content" +msgstr "Contenuto HTML" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__id +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__id +msgid "ID" +msgstr "ID" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,help:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "" +"If checked, Odoo take into account the units included in the packaging to " +"compute number of labels" +msgstr "" +"Se selezionata, Odoo tiene conto delle unità incluse nella confezione per " +"calcolare il numero di etichette" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__is_custom_label +msgid "Is Custom Label" +msgstr "È etichetta personalizzata" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "It only appears here products with barcode defined" +msgstr "Qui appaiono solo prodotti con codice a barre definito" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report +msgid "Label Impresion" +msgstr "Immagine etichetta" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__label_qty +msgid "Label Qty" +msgstr "Q.tà etichetta" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report_quant_package +msgid "Label Quant Package" +msgstr "Collo quanto etichetta" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_quant +msgid "Label Quant Report" +msgstr "Resoconto quanto etichetta" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_report_base_label +msgid "Label report" +msgstr "Resoconto etichetta" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_package +msgid "Labels package content" +msgstr "Contenuto collo etichette" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__lang +msgid "Lang" +msgstr "Lingua" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print____last_update +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__lot_id +msgid "Lot/Serial Number" +msgstr "Numero di lotto/serie" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_report_default_format +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_report_default_format +msgid "Method to choose the barcode formating" +msgstr "Metodo per scegliere la formattazione codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__move_line_id +msgid "Move" +msgstr "Movimento" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__product_print_moves +msgid "Moves" +msgstr "Movimenti" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_packaging_id +msgid "Packaging" +msgstr "Imballaggio" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__picking_ids +msgid "Picking" +msgstr "Prelievo" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Print" +msgstr "Stampa" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "Print One Label By Item" +msgstr "Stampa una etichetta per oggetto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_line_print +msgid "Print Picking Line" +msgstr "Stampa riga prelievo" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_lot +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_quant +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_sml +msgid "Print barcode labels" +msgstr "stampa etichette codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_id +msgid "Product" +msgstr "Prodotto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_product_packaging +msgid "Product Packaging" +msgstr "Imballaggio prodotto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__quantity +msgid "Quantity" +msgstr "Quantità" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__label_qty +msgid "Quantity of Labels" +msgstr "Quantità di etichette" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_ir_actions_report +msgid "Report Action" +msgstr "Azione resoconto" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_report +msgid "Report to print" +msgstr "Resoconto da stampare" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select format of barcode display" +msgstr "Seleziona formato visualizzazione codice a barre" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select report for barcode display" +msgstr "Seleziona resoconto per visualizzazione codice a barre" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__stock_move_line_ids +msgid "Stock Move Line" +msgstr "Riga movimento di magazzino" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__uom_id +msgid "Unit of Measure" +msgstr "Unità di misura" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__wizard_id +msgid "Wizard" +msgstr "Procedura guidata" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_print +msgid "Wizard to select how many barcodes have to be printed" +msgstr "" +"Procedura guidata per selezionare quanti codici a barre devono essere " +"stampati" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "You can print just the products with assigned barcode" +msgstr "Si possono stampare solo i prodotti con codice a barre assegnato" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/stock_picking_product_barcode_report.pot b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/stock_picking_product_barcode_report.pot new file mode 100644 index 0000000..ab50884 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/i18n/stock_picking_product_barcode_report.pot @@ -0,0 +1,363 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_product_barcode_report +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +msgid "/ Lot:" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Life date: " +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Lot: " +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Partner Ref: " +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Quantity: " +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Weight:" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Format\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Barcode Report\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Label Quantity\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "" +"Language\n" +"
" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.report_label_barcode_quant_package +msgid "Barcode" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_format +msgid "Barcode Format" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Barcode format" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_barcode_label +msgid "Barcode label" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Cancel" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_company +msgid "Companies" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_uid +msgid "Created by" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__create_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__create_date +msgid "Created on" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_custom_report +msgid "Custom Label Impresion" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_ir_actions_report__is_custom_label +msgid "Custom label" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_default_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_default_report +msgid "Default template for barcode labels" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__result_package_id +msgid "Dest. package" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__res_company__barcode_report_default_format__gs1_128 +#: model:ir.model.fields.selection,name:stock_picking_product_barcode_report.selection__stock_picking_print__barcode_format__gs1_128 +msgid "Display GS1_128 format for barcodes" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__display_name +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__display_name +msgid "Display Name" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Fill info of label..." +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Format of the barcode when it is printed." +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__html_content +msgid "Html Content" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__id +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__id +msgid "ID" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,help:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "" +"If checked, Odoo take into account the units included in the packaging to " +"compute number of labels" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__is_custom_label +msgid "Is Custom Label" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "It only appears here products with barcode defined" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report +msgid "Label Impresion" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__label_qty +msgid "Label Qty" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_label_barcode_report_quant_package +msgid "Label Quant Package" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_quant +msgid "Label Quant Report" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.action_report_base_label +msgid "Label report" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.report,name:stock_picking_product_barcode_report.report_label_barcode_package +msgid "Labels package content" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__lang +msgid "Lang" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print____last_update +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print____last_update +msgid "Last Modified on" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_uid +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__write_date +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__write_date +msgid "Last Updated on" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__lot_id +msgid "Lot/Serial Number" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_company__barcode_report_default_format +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_res_config_settings__barcode_report_default_format +msgid "Method to choose the barcode formating" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__move_line_id +msgid "Move" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__product_print_moves +msgid "Moves" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_packaging_id +msgid "Packaging" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__picking_ids +msgid "Picking" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "Print" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_product_packaging__print_one_label_by_item +msgid "Print One Label By Item" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_line_print +msgid "Print Picking Line" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_lot +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_quant +#: model:ir.actions.act_window,name:stock_picking_product_barcode_report.act_stock_barcode_selection_printing_sml +msgid "Print barcode labels" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__product_id +msgid "Product" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_product_packaging +msgid "Product Packaging" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__quantity +msgid "Quantity" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__label_qty +msgid "Quantity of Labels" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__barcode_report +msgid "Report to print" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select format of barcode display" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.res_config_settings_view_form +msgid "Select report for barcode display" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_print__stock_move_line_ids +msgid "Stock Move Line" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__uom_id +msgid "Unit of Measure" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model.fields,field_description:stock_picking_product_barcode_report.field_stock_picking_line_print__wizard_id +msgid "Wizard" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model:ir.model,name:stock_picking_product_barcode_report.model_stock_picking_print +msgid "Wizard to select how many barcodes have to be printed" +msgstr "" + +#. module: stock_picking_product_barcode_report +#: model_terms:ir.ui.view,arch_db:stock_picking_product_barcode_report.view_stock_barcode_selection_printing +msgid "You can print just the products with assigned barcode" +msgstr "" diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/__init__.py new file mode 100644 index 0000000..e2740af --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/__init__.py @@ -0,0 +1,4 @@ +from . import res_config_settings +from . import ir_actions_report +from . import product_packaging +from . import res_company diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/ir_actions_report.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/ir_actions_report.py new file mode 100644 index 0000000..2314350 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/ir_actions_report.py @@ -0,0 +1,10 @@ +# Copyright 2021 Tecnativa - Carlos Roca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class IrActionsReport(models.Model): + _inherit = "ir.actions.report" + + is_barcode_label = fields.Boolean(string="Barcode label") + is_custom_label = fields.Boolean(string="Custom label") diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/product_packaging.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/product_packaging.py new file mode 100644 index 0000000..cf0e319 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/product_packaging.py @@ -0,0 +1,13 @@ +# Copyright 2024 Tecnativa - Sergio Teruel +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ProductPackaging(models.Model): + _inherit = "product.packaging" + + print_one_label_by_item = fields.Boolean( + help="If checked, Odoo take into account the units included in the packaging " + "to compute number of labels" + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_company.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_company.py new file mode 100644 index 0000000..f2846ed --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_company.py @@ -0,0 +1,18 @@ +# Copyright 2021 Tecnativa - Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class Company(models.Model): + _inherit = "res.company" + + barcode_report_default_format = fields.Selection( + [("gs1_128", "Display GS1_128 format for barcodes")], + string="Method to choose the barcode formating", + ) + barcode_default_report = fields.Many2one( + comodel_name="ir.actions.report", + string="Default template for barcode labels", + domain=[("is_barcode_label", "=", True)], + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_config_settings.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_config_settings.py new file mode 100644 index 0000000..71202d0 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/models/res_config_settings.py @@ -0,0 +1,20 @@ +# Copyright 2021 Tecnativa - Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + barcode_report_default_format = fields.Selection( + string="Method to choose the barcode formating", + related="company_id.barcode_report_default_format", + readonly=False, + ) + barcode_default_report = fields.Many2one( + comodel_name="ir.actions.report", + related="company_id.barcode_default_report", + string="Default template for barcode labels", + readonly=False, + ) diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONFIGURE.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONFIGURE.rst new file mode 100644 index 0000000..16da295 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONFIGURE.rst @@ -0,0 +1,8 @@ +#. You can define other reports to print checking the option 'Barcode Label' on report + record. +#. You can select a default report on 'Settings > Inventory > Barcode format > Default + template for barcode labels'. There will only appear the reports with the option + 'Barcode Label' checked. +#. Go to 'Settings > Inventory > Barcode format' and select on 'Method to choose the + barcode formating' the value 'Display GS1_128 format for barcodes' or let it blank + for normal use of barcodes on Odoo. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONTRIBUTORS.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..88dc150 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Carlos Roca + * Sergio Teruel diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/DESCRIPTION.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/DESCRIPTION.rst new file mode 100644 index 0000000..8592142 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows you to select how many copies of barcode labels do you want +to print. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/USAGE.rst b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/USAGE.rst new file mode 100644 index 0000000..8f3fab1 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/readme/USAGE.rst @@ -0,0 +1,5 @@ +#. Create a new transfer with a product with 'Barcode'. +#. Validate it. +#. Click on 'Print > Print Barcode Labels'. +#. Select how many labels do you want for each product. +#. Click on 'Print' and open the pdf with the labels. diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_base_label.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_base_label.xml new file mode 100644 index 0000000..1874562 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_base_label.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode.xml new file mode 100644 index 0000000..a6c28bb --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode.xml @@ -0,0 +1,102 @@ + + + + Label Impresion + stock.picking.line.print + qweb-pdf + stock_picking_product_barcode_report.label_barcode_report + stock_picking_product_barcode_report.label_barcode_report + + True + + + Label Quant Package + stock.picking.line.print + qweb-pdf + stock_picking_product_barcode_report.label_barcode_report_quant_package + stock_picking_product_barcode_report.label_barcode_report_quant_package + + True + + + Label Quant Report + stock.quant + qweb-pdf + stock_picking_product_barcode_report.label_barcode_report_quant_package + stock_picking_product_barcode_report.label_barcode_report_quant_package + + + + + Labels package content + stock.quant.package + qweb-pdf + stock_picking_product_barcode_report.label_barcode_report_package_content + stock_picking_product_barcode_report.label_barcode_report_package_content + + + + + Custom Label Impresion + stock.picking.print + qweb-pdf + stock_picking_product_barcode_report.label_custom_report + stock_picking_product_barcode_report.label_custom_report + + True + True + + + + + Label report + stock.picking.line.print + qweb-pdf + stock_picking_product_barcode_report.base_label + stock_picking_product_barcode_report.base_label + + True + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_quant_package_template.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_quant_package_template.xml new file mode 100644 index 0000000..d0a09b2 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_quant_package_template.xml @@ -0,0 +1,109 @@ + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_template.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_template.xml new file mode 100644 index 0000000..f29a442 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_barcode_template.xml @@ -0,0 +1,97 @@ + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_custom.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_custom.xml new file mode 100644 index 0000000..337ad54 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/report/report_label_custom.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/security/ir.model.access.csv b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/security/ir.model.access.csv new file mode 100644 index 0000000..42ec498 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_stock_picking_line_print,access_stock_picking_line_print,model_stock_picking_line_print,base.group_user,1,1,1,1 +access_stock_picking_print,access_stock_picking_print,model_stock_picking_print,base.group_user,1,1,1,1 diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/icon.png b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/icon.png new file mode 100644 index 0000000..3a0328b Binary files /dev/null and b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/icon.png differ diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/index.html b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/index.html new file mode 100644 index 0000000..19701ff --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/static/description/index.html @@ -0,0 +1,461 @@ + + + + + +README.rst + + + +
+ + + +Odoo Community Association + +
+

Stock Picking Product Barcode Report

+ +

Beta License: AGPL-3 OCA/stock-logistics-barcode Translate me on Weblate Try me on Runboat

+

This module allows you to select how many copies of barcode labels do you want +to print.

+

Table of contents

+ +
+

Configuration

+
    +
  1. You can define other reports to print checking the option ‘Barcode Label’ on report +record.
  2. +
  3. You can select a default report on ‘Settings > Inventory > Barcode format > Default +template for barcode labels’. There will only appear the reports with the option +‘Barcode Label’ checked.
  4. +
  5. Go to ‘Settings > Inventory > Barcode format’ and select on ‘Method to choose the +barcode formating’ the value ‘Display GS1_128 format for barcodes’ or let it blank +for normal use of barcodes on Odoo.
  6. +
+
+
+

Usage

+
    +
  1. Create a new transfer with a product with ‘Barcode’.
  2. +
  3. Validate it.
  4. +
  5. Click on ‘Print > Print Barcode Labels’.
  6. +
  7. Select how many labels do you want for each product.
  8. +
  9. Click on ‘Print’ and open the pdf with the labels.
  10. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Carlos Roca
    • +
    • Sergio Teruel
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainer:

+

CarlosRoca13

+

This module is part of the OCA/stock-logistics-barcode project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+
+ + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/__init__.py new file mode 100644 index 0000000..6d1fff7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/__init__.py @@ -0,0 +1 @@ +from . import test_stock_picking_product_barcode_report diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/test_stock_picking_product_barcode_report.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/test_stock_picking_product_barcode_report.py new file mode 100644 index 0000000..f908081 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/tests/test_stock_picking_product_barcode_report.py @@ -0,0 +1,108 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestStockPickingProductBarcodeReport(TransactionCase): + def setUp(self): + super().setUp() + self.supplier_location = self.env.ref("stock.stock_location_suppliers") + self.stock_location = self.env.ref("stock.stock_location_stock") + self.product_barcode = self.env["product.product"].create( + {"name": "Test Product 1", "type": "product", "barcode": "1001"} + ) + self.product_no_barcode = self.env["product.product"].create( + {"name": "Test Product 2", "type": "product"} + ) + self.package = self.env["stock.quant.package"].create({"name": "Pack-Test"}) + partner = self.env["res.partner"].create({"name": "Test Partner"}) + self.picking = self.env["stock.picking"].create( + { + "location_id": self.supplier_location.id, + "location_dest_id": self.stock_location.id, + "partner_id": partner.id, + "picking_type_id": self.env.ref( + "stock.picking_type_in" + ).id, # Operation type Receipts + "move_ids_without_package": [ + ( + 0, + 0, + { + "name": "Test 01", + "product_id": self.product_barcode.id, + "product_uom_qty": 20, + "product_uom": self.product_barcode.uom_id.id, + "location_id": self.supplier_location.id, + "location_dest_id": self.stock_location.id, + }, + ), + ( + 0, + 0, + { + "name": "Test 02", + "product_id": self.product_no_barcode.id, + "product_uom_qty": 10, + "product_uom": self.product_barcode.uom_id.id, + "location_id": self.supplier_location.id, + "location_dest_id": self.stock_location.id, + }, + ), + ], + } + ) + self.picking.action_confirm() + for move_line in self.picking.move_line_ids: + move_line.qty_done = move_line.reserved_uom_qty + self.picking._action_done() + for move_line_id in self.picking.move_line_ids: + move_line_id.result_package_id = self.package + self.wizard = ( + self.env["stock.picking.print"] + .with_context( + **{"active_ids": [self.picking.id], "active_model": "stock.picking"} + ) + .create({}) + ) + + def test_wizard_creation(self): + self.wizard.barcode_report = self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report" + ) + self.wizard._onchange_picking_ids() + self.assertEqual(1, len(self.wizard.product_print_moves.ids)) + line = self.wizard.product_print_moves[0] + self.assertEqual(line.label_qty, 1) + self.assertEqual(line.product_id.id, self.product_barcode.id) + # This two sentences are added just for check that not throw an exception + self.wizard.barcode_format = "gs1_128" + self.wizard.print_labels() + # Check that wizard add lines with packages and the label not + # throw an exception when trying to print it + self.wizard.barcode_report = self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report_quant_package" + ) + self.wizard._onchange_picking_ids() + self.assertEqual(2, len(self.wizard.product_print_moves.ids)) + line = self.wizard.product_print_moves[0] + self.assertEqual(line.label_qty, 1) + self.assertEqual(line.product_id.id, self.product_barcode.id) + self.wizard.print_labels() + + def test_wizard_quants(self): + quant = self.env["stock.quant"].search( + [("product_id", "=", self.product_barcode.id), ("quantity", ">", 0)] + ) + quant_wizard = ( + self.env["stock.picking.print"] + .with_context(**{"active_ids": quant.ids, "active_model": "stock.quant"}) + .create({}) + ) + quant_wizard.barcode_report = self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report" + ) + self.assertEqual(len(quant_wizard.product_print_moves), 1) + self.assertEqual(quant_wizard.product_print_moves.quantity, 20) + quant_wizard.print_labels() diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/ir_actions_report_view.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/ir_actions_report_view.xml new file mode 100644 index 0000000..decc68f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/ir_actions_report_view.xml @@ -0,0 +1,13 @@ + + + + ir.actions.report.form + ir.actions.report + + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/product_views.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/product_views.xml new file mode 100644 index 0000000..889afa7 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/product_views.xml @@ -0,0 +1,24 @@ + + + + + product.packaging + + + + + + + + + + product.packaging + + + + + + + + + diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/res_config_settings_view.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/res_config_settings_view.xml new file mode 100644 index 0000000..c85a377 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/views/res_config_settings_view.xml @@ -0,0 +1,48 @@ + + + + res.config.settings.view.form.inherit.barcode.format + res.config.settings + + +
+

Barcode format

+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/__init__.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/__init__.py new file mode 100644 index 0000000..945c6dc --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import stock_barcode_selection_printing diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing.py b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing.py new file mode 100644 index 0000000..ff93a98 --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing.py @@ -0,0 +1,236 @@ +# Copyright 2020 Carlos Roca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from math import ceil + +from odoo import api, fields, models + + +class ProductPrintingQty(models.TransientModel): + _name = "stock.picking.line.print" + _rec_name = "product_id" + _description = "Print Picking Line" + + product_id = fields.Many2one( + "product.product", + string="Product", + required=True, + domain="[('id', '=', product_id)]", + ) + quantity = fields.Float(digits="Product Unit of Measure", required=True) + label_qty = fields.Integer( + "Quantity of Labels", compute="_compute_label_qty", store=True, readonly=False + ) + uom_id = fields.Many2one( + "uom.uom", + string="Unit of Measure", + ) + lot_id = fields.Many2one("stock.lot", string="Lot/Serial Number") + result_package_id = fields.Many2one( + comodel_name="stock.quant.package", string="Dest. package" + ) + + wizard_id = fields.Many2one("stock.picking.print", string="Wizard") + move_line_id = fields.Many2one("stock.move.line", "Move", readonly=True) + product_packaging_id = fields.Many2one( + comodel_name="product.packaging", + string="Packaging", + domain="[('product_id', '=', product_id)]", + groups="product.group_stock_packaging", + check_company=True, + ) + + @api.depends("product_packaging_id", "quantity") + def _compute_label_qty(self): + self.label_qty = 1 + for line in self.filtered("product_packaging_id.print_one_label_by_item"): + factor = line.product_packaging_id.qty + line.label_qty = ceil(line.quantity / (factor or 1.0)) + + +class WizStockBarcodeSelectionPrinting(models.TransientModel): + _name = "stock.picking.print" + _description = "Wizard to select how many barcodes have to be printed" + + @api.model + def _get_lang(self): + return self.env["res.lang"].get_installed() + + @api.model + def default_get(self, fields): + ctx = self.env.context.copy() + res = super().default_get(fields) + if ctx.get("active_ids") and ctx.get("active_model") == "stock.picking": + picking_ids = self.env["stock.picking"].browse(ctx.get("active_ids")) + res.update({"picking_ids": picking_ids.ids}) + if ctx.get("active_ids") and ctx.get("active_model") == "stock.move.line": + stock_move_lines = self.env["stock.move.line"].browse(ctx.get("active_ids")) + res.update({"stock_move_line_ids": stock_move_lines.ids}) + if ctx.get("active_ids") and ctx.get("active_model") == "stock.quant": + lines = self._get_lines_from_quants() + res.update({"product_print_moves": lines}) + if ctx.get("active_ids") and ctx.get("active_model") == "stock.lot": + lines = self._get_lines_from_lots() + res.update({"product_print_moves": lines}) + return res + + def _default_barcode_report(self): + barcode_report = self.env.company.barcode_default_report + if not barcode_report: + barcode_report = self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report" + ) + return barcode_report + + picking_ids = fields.Many2many("stock.picking") + product_print_moves = fields.One2many( + "stock.picking.line.print", "wizard_id", "Moves" + ) + barcode_format = fields.Selection( + selection=[("gs1_128", "Display GS1_128 format for barcodes")], + default=lambda self: self.env.company.barcode_report_default_format, + ) + barcode_report = fields.Many2one( + comodel_name="ir.actions.report", + string="Report to print", + domain=[("is_barcode_label", "=", True)], + default=_default_barcode_report, + required=True, + ) + is_custom_label = fields.Boolean(compute="_compute_is_custom_label") + html_content = fields.Html() + label_qty = fields.Integer(default=1) + stock_move_line_ids = fields.Many2many("stock.move.line") + lang = fields.Selection(comodel_name="res.lang", selection=_get_lang) + + @api.onchange("picking_ids", "stock_move_line_ids", "barcode_report") + def _onchange_picking_ids(self): + product_print_moves = [(5, 0)] + line_fields = [f for f in self.env["stock.picking.line.print"]._fields.keys()] + product_print_moves_data_tmpl = self.env[ + "stock.picking.line.print" + ].default_get(line_fields) + stock_move_lines = self.stock_move_line_ids or self._get_move_lines( + self.picking_ids + ) + for move_line in stock_move_lines: + product_print_moves_data = dict(product_print_moves_data_tmpl) + product_print_moves_data.update( + self._prepare_data_from_move_line(move_line) + ) + if product_print_moves_data: + product_print_moves.append((0, 0, product_print_moves_data)) + if self.stock_move_line_ids or self.picking_ids: + self.product_print_moves = product_print_moves + + def _get_lines_from_quants(self): + lines = [] + quants = self.env["stock.quant"].browse(self.env.context["active_ids"]) + for quant in quants: + lines.append( + ( + 0, + 0, + { + "product_id": quant.product_id.id, + "label_qty": 1, + "quantity": quant.quantity, + "uom_id": quant.product_uom_id.id, + "lot_id": quant.lot_id.id, + "result_package_id": quant.package_id.id, + }, + ) + ) + return lines + + def _get_lines_from_lots(self): + lines = [] + lots = self.env["stock.lot"].browse(self.env.context["active_ids"]) + for lot in lots: + lines.append( + ( + 0, + 0, + { + "product_id": lot.product_id.id, + "label_qty": 1, + "quantity": lot.product_qty, + "uom_id": lot.product_uom_id.id, + "lot_id": lot.id, + }, + ) + ) + return lines + + @api.model + def _get_move_lines(self, picking): + stock_move_line_to_print_id = self.env.context.get( + "stock_move_line_to_print", False + ) + if stock_move_line_to_print_id: + return self.env["stock.move.line"].browse(stock_move_line_to_print_id) + + if self.barcode_report == self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report_quant_package" + ): + return picking.move_line_ids.filtered("result_package_id") + elif self.barcode_report == self.env.ref( + "stock_picking_product_barcode_report.action_label_barcode_report" + ): + return picking.move_line_ids.filtered("product_id.barcode") + return picking.move_line_ids + + @api.model + def _prepare_data_from_move_line(self, move_line): + qty = self.env.context.get("force_quantity_line", move_line.qty_done) + return { + "product_id": move_line.product_id.id, + "quantity": qty, + "move_line_id": move_line.id, + "uom_id": move_line.product_uom_id.id, + "lot_id": move_line.lot_id.id, + "result_package_id": move_line.result_package_id.id, + "product_packaging_id": move_line.move_id.product_packaging_id.id, + } + + def print_labels(self): + if self.is_custom_label: + return self.barcode_report.report_action(self) + print_move = self.product_print_moves.filtered(lambda p: p.label_qty > 0) + if print_move: + return self.barcode_report.report_action(self.product_print_moves) + + @api.onchange("barcode_report") + def _compute_is_custom_label(self): + for record in self: + record.is_custom_label = record.barcode_report.is_custom_label + + def create_label_print_wiz_from_move_line(self, report_id, stock_move_lines): + """Helper method to create this wizard from other models to print labels""" + if isinstance(stock_move_lines, (int, list)): + stock_move_lines = self.env["stock.move.line"].browse(stock_move_lines) + wiz = self.env["stock.picking.print"].create( + { + "barcode_report": report_id, + "product_print_moves": [ + ( + 0, + 0, + { + "product_id": sml.product_id.id, + "quantity": self.env.context.get( + "force_quantity_line", sml.qty_done + ), + "move_line_id": sml.id, + "uom_id": sml.product_uom_id.id, + "lot_id": sml.lot_id.id, + "result_package_id": sml.result_package_id.id, + "product_packaging_id": self.env.context.get( + "packaging_id", False + ), + }, + ) + for sml in stock_move_lines + ], + } + ) + return wiz diff --git a/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing_view.xml b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing_view.xml new file mode 100644 index 0000000..bd5677f --- /dev/null +++ b/odoo-bringout-oca-stock-logistics-barcode-stock_picking_product_barcode_report/stock_picking_product_barcode_report/wizard/stock_barcode_selection_printing_view.xml @@ -0,0 +1,124 @@ + + + + stock.barcode.selection.printing.form + stock.picking.print + +
+

You can print just the products with assigned barcode

+ +
+ Barcode Report +
+ +
+
+ Barcode Format +
+ +
+
+ Language +
+ +
+

It only appears here products with barcode defined

+
+ + Label Quantity +
+ +
+ +
+ + + + + + + + + + + + + + +
+
+ +
+
+ + Print barcode labels + stock.picking.print + form + report + + new + + + Print barcode labels + stock.picking.print + form + report + + new + + + Print barcode labels + stock.picking.print + form + report + + new + + + Print barcode labels + stock.picking.print + form + report + + new + +