diff --git a/stock_available_immediately/__manifest__.py b/stock_available_immediately/__manifest__.py index 598eeb26..a75a1f72 100644 --- a/stock_available_immediately/__manifest__.py +++ b/stock_available_immediately/__manifest__.py @@ -11,6 +11,9 @@ "website": "https://github.com/OCA/stock-logistics-availability", "author": "Camptocamp,Sodexis,Odoo Community Association (OCA),Sergio Díaz", "license": "AGPL-3", + "data": [ + "views/res_config_settings_views.xml", + ], "category": "Hidden", "installable": True, } diff --git a/stock_available_immediately/i18n/es.po b/stock_available_immediately/i18n/es.po index e11c48fa..5d100542 100644 --- a/stock_available_immediately/i18n/es.po +++ b/stock_available_immediately/i18n/es.po @@ -1,28 +1,39 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * stock_available_immediately +# * stock_available_immediately # -# Translators: -# OCA Transbot , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-16 14:35+0000\n" -"PO-Revision-Date: 2023-02-01 10:46+0000\n" -"Last-Translator: FranciscoFactorLibre \n" -"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"POT-Creation-Date: 2025-07-23 13:44+0000\n" +"PO-Revision-Date: 2025-07-23 15:45+0200\n" +"Last-Translator: \n" +"Language-Team: \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.14.1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" + +#. module: stock_available_immediately +#: model:ir.model,name:stock_available_immediately.model_res_config_settings +msgid "Config Settings" +msgstr "Ajustes de configuración" + +#. module: stock_available_immediately +#: model:ir.model.fields,field_description:stock_available_immediately.field_res_config_settings__compute_stock_available_immediately +msgid "Exclude incoming goods" +msgstr "Excluir mercancías entrantes" #. module: stock_available_immediately #: model:ir.model,name:stock_available_immediately.model_product_product msgid "Product Variant" -msgstr "Variantes de producto" +msgstr "Variante de producto" -#~ msgid "Product" -#~ msgstr "Producto" +#. module: stock_available_immediately +#: model:ir.model.fields,help:stock_available_immediately.field_res_config_settings__compute_stock_available_immediately +msgid "" +"This will subtract incoming quantities from the quantities available to promise." +msgstr "Esto restará las cantidades entrantes de las cantidades disponibles para prometer." diff --git a/stock_available_immediately/i18n/stock_available_immediately.pot b/stock_available_immediately/i18n/stock_available_immediately.pot index 8a50431a..243c1f11 100644 --- a/stock_available_immediately/i18n/stock_available_immediately.pot +++ b/stock_available_immediately/i18n/stock_available_immediately.pot @@ -2,18 +2,39 @@ # This file contains the translation of the following modules: # * stock_available_immediately # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-07-24 12:12+0200\n" +"PO-Revision-Date: 2025-07-24 10:12+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" + +#. module: stock_available_immediately +#: model:ir.model,name:stock_available_immediately.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: stock_available_immediately +#: model:ir.model.fields,field_description:stock_available_immediately.field_res_config_settings__compute_stock_available_immediately +msgid "Exclude incoming goods" +msgstr "" #. module: stock_available_immediately #: model:ir.model,name:stock_available_immediately.model_product_product msgid "Product Variant" msgstr "" + +#. module: stock_available_immediately +#: model:ir.model.fields,help:stock_available_immediately.field_res_config_settings__compute_stock_available_immediately +msgid "" +"This will subtract incoming quantities from the quantities available to " +"promise." +msgstr "" diff --git a/stock_available_immediately/models/__init__.py b/stock_available_immediately/models/__init__.py index 586a7eff..2dbea1b0 100644 --- a/stock_available_immediately/models/__init__.py +++ b/stock_available_immediately/models/__init__.py @@ -1,3 +1,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import product_product +from . import res_config_settings diff --git a/stock_available_immediately/models/product_product.py b/stock_available_immediately/models/product_product.py index 90a0d4bb..9177fe48 100644 --- a/stock_available_immediately/models/product_product.py +++ b/stock_available_immediately/models/product_product.py @@ -11,10 +11,20 @@ class ProductProduct(models.Model): def _compute_available_quantities_dict(self): res, stock_dict = super()._compute_available_quantities_dict() - for product in self: - res[product.id]["immediately_usable_qty"] -= stock_dict[product.id][ - "incoming_qty" - ] + param = ( + self.env["ir.config_parameter"] + .sudo() + .get_param( + "stock_available_immediately.compute_stock_available_immediately", + "True", + ) + ) + + if param == "True": + for product in self: + res[product.id]["immediately_usable_qty"] -= stock_dict[product.id][ + "incoming_qty" + ] return res, stock_dict @api.depends("virtual_available", "incoming_qty") diff --git a/stock_available_immediately/models/res_config_settings.py b/stock_available_immediately/models/res_config_settings.py new file mode 100644 index 00000000..abbdc750 --- /dev/null +++ b/stock_available_immediately/models/res_config_settings.py @@ -0,0 +1,30 @@ +from odoo import api, fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + compute_stock_available_immediately = fields.Boolean( + string="Exclude incoming goods", + help="This will subtract incoming quantities from the quantities " + "available to promise.", + ) + + @api.model + def get_values(self): + res = super().get_values() + param_env = self.env["ir.config_parameter"].sudo() + value = param_env.get_param( + "stock_available_immediately.compute_stock_available_immediately", "True" + ) + res.update(compute_stock_available_immediately=value == "True") + return res + + def set_values(self): + res = super().set_values() + ir_config_sudo = self.env["ir.config_parameter"].sudo() + ir_config_sudo.set_param( + "stock_available_immediately.compute_stock_available_immediately", + str(self.compute_stock_available_immediately), + ) + return res diff --git a/stock_available_immediately/views/res_config_settings_views.xml b/stock_available_immediately/views/res_config_settings_views.xml new file mode 100644 index 00000000..b196882a --- /dev/null +++ b/stock_available_immediately/views/res_config_settings_views.xml @@ -0,0 +1,27 @@ + + + Stock settings: quantity available to promise + res.config.settings + + + + 1 + + + + + + + + +