diff --git a/product_retail_cm/__init__.py b/product_retail_cm/__init__.py
index 899bcc9..0650744 100644
--- a/product_retail_cm/__init__.py
+++ b/product_retail_cm/__init__.py
@@ -1,2 +1 @@
from . import models
-
diff --git a/product_retail_cm/__manifest__.py b/product_retail_cm/__manifest__.py
index a1e8465..38bbfcd 100644
--- a/product_retail_cm/__manifest__.py
+++ b/product_retail_cm/__manifest__.py
@@ -1,36 +1,23 @@
{
'name': 'Product Retail',
'category': 'Product',
- 'summary': 'Gestiona productos en distribución / Venta a minoristas',
+ 'summary': 'Gestiona productos en distribución.',
'version': "16.0.1.0.0",
'description': """
Gestiona productos en distribución / Venta a minoristas
==================================================
* Añade campo a product: En Distribución y margin de minoristas.
-* Filtro de productos en distribución en las vistas de productos
-
-ToDo:
-* Configuración para elegir lista de precios a minoristas
-* Los minoristas se configuran a mano con esa tarifa, público normal con la Tarifa Pública por efecto
-* los productos con margen configurado se agregan en esa tarifa con el descuento marcado
-* Impide la venta a minoristas de artículos que no están en distribución
+* Filtro de productos en distribución en la vista de productos.
""",
'author': 'Criptomart',
'depends': [
'product',
],
- 'external_dependencies': {'python': [], 'bin': []},
'data': [
'views/product.xml',
],
- 'qweb': [],
- 'demo': [],
'installable': True,
'auto_install': False,
'application': False,
- "post_load": None,
- "pre_init_hook": None,
- "post_init_hook": None,
- "uninstall_hook": None,
}
diff --git a/product_retail_cm/models/product_template.py b/product_retail_cm/models/product_template.py
index 5bb5375..969896f 100644
--- a/product_retail_cm/models/product_template.py
+++ b/product_retail_cm/models/product_template.py
@@ -1,14 +1,11 @@
-# Copyright (C) 2022: Criptomart (https://criptomart.net)
+# Copyright (C) 2022-2024: Criptomart (https://criptomart.net)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-#import logging
-
from odoo import tools, models, fields, api, _
-#_logger = logging.getLogger(__name__)
class ProductTemplate(models.Model):
_inherit = "product.template"
- in_distribution = fields.Boolean('En distribución')
- retail_margin = fields.Float('Margen aplicado a minoristas')
+ in_distribution = fields.Boolean('En distribución libros')
+ in_distribution_music = fields.Boolean('En distribución música')
diff --git a/product_retail_cm/views/product.xml b/product_retail_cm/views/product.xml
index 0400f61..22cd0f0 100644
--- a/product_retail_cm/views/product.xml
+++ b/product_retail_cm/views/product.xml
@@ -10,18 +10,19 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
-
+
-
+
+
+
+
+
-
-
+ view.product.search.form.inherit.distributionproduct.template
@@ -29,8 +30,8 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
diff --git a/website_product_retail/__init__.py b/website_product_retail/__init__.py
new file mode 100644
index 0000000..0650744
--- /dev/null
+++ b/website_product_retail/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/website_product_retail/__manifest__.py b/website_product_retail/__manifest__.py
new file mode 100644
index 0000000..53d2549
--- /dev/null
+++ b/website_product_retail/__manifest__.py
@@ -0,0 +1,25 @@
+{
+ 'name': 'Website Product Retail',
+ 'category': 'Product',
+ 'summary': 'Setea categorías y ribbons de website en productos en distribución.',
+ 'version': "16.0.1.0.0",
+ 'description': """
+
+Configura categorías y ribbons de website en productos en distribución.
+==================================================
+* Configura en el producto las categorías del website de distribución.
+* Configura en el producto el ribbon del website de distribución.
+* Las categorías y ribbons se configuran en las opciones de configuración de la compañía.
+""",
+ 'author': 'Criptomart',
+ 'depends': [
+ 'website_sale',
+ 'product_retail_cm',
+ ],
+ 'data': [
+ 'views/res_config_settings_views.xml',
+ ],
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
diff --git a/website_product_retail/models/__init__.py b/website_product_retail/models/__init__.py
new file mode 100644
index 0000000..e9020f6
--- /dev/null
+++ b/website_product_retail/models/__init__.py
@@ -0,0 +1,5 @@
+from . import product_template
+from . import res_company
+from . import res_config_settings
+
+
diff --git a/website_product_retail/models/product_template.py b/website_product_retail/models/product_template.py
new file mode 100644
index 0000000..bc38e6a
--- /dev/null
+++ b/website_product_retail/models/product_template.py
@@ -0,0 +1,38 @@
+from odoo import tools, models, fields, api, _
+
+
+class ProductTemplate(models.Model):
+ _inherit = "product.template"
+
+ def write(self, vals):
+ if 'in_distribution' in vals:
+ if self.env.user.company_id.web_cat_in_distribution_libros:
+ category_id = self.env.user.company_id.web_cat_in_distribution_libros.id
+ if self.env.user.company_id.web_ribbon_in_distribution:
+ ribbon_id = self.env.user.company_id.web_ribbon_in_distribution.id
+ if vals['in_distribution']:
+ if category_id:
+ vals['public_categ_ids'] = [(4,category_id)]
+ if ribbon_id:
+ vals['website_ribbon_id'] = ribbon_id
+ else:
+ if category_id:
+ vals['public_categ_ids'] = [(3,category_id)]
+ if ribbon_id:
+ vals['website_ribbon_id'] = False
+ if 'in_distribution_music' in vals:
+ if self.env.user.company_id.web_cat_in_distribution_musica:
+ category_id = self.env.user.company_id.web_cat_in_distribution_musica.id
+ if self.env.user.company_id.web_ribbon_in_distribution:
+ ribbon_id = self.env.user.company_id.web_ribbon_in_distribution.id
+ if vals['in_distribution_music']:
+ if category_id:
+ vals['public_categ_ids'] = [(4,category_id)]
+ if ribbon_id:
+ vals['website_ribbon_id'] = ribbon_id
+ else:
+ if category_id:
+ vals['public_categ_ids'] = [(3,category_id)]
+ if ribbon_id:
+ vals['website_ribbon_id'] = False
+ return super().write(vals)
diff --git a/website_product_retail/models/res_company.py b/website_product_retail/models/res_company.py
new file mode 100644
index 0000000..2191e22
--- /dev/null
+++ b/website_product_retail/models/res_company.py
@@ -0,0 +1,24 @@
+# Copyright 2022 Criptomart
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import fields, models
+
+
+class Company(models.Model):
+ _inherit = 'res.company'
+
+ web_cat_in_distribution_libros = fields.Many2one(
+ 'product.public.category',
+ 'Website categoría de libros en distribución',
+ )
+
+ web_cat_in_distribution_musica = fields.Many2one(
+ 'product.public.category',
+ string='Website categoría de música en distribución',
+ )
+
+ web_ribbon_in_distribution = fields.Many2one(
+ 'product.ribbon',
+ string='Website ribbon en distribución',
+ )
+
diff --git a/website_product_retail/models/res_config_settings.py b/website_product_retail/models/res_config_settings.py
new file mode 100644
index 0000000..af06df2
--- /dev/null
+++ b/website_product_retail/models/res_config_settings.py
@@ -0,0 +1,29 @@
+# Copyright 2024 Criptomart
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import fields, models
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ web_cat_in_distribution_libros = fields.Many2one(
+ 'product.public.category',
+ 'Website categoría de libros en distribución',
+ readonly=False,
+ related="company_id.web_cat_in_distribution_libros",
+ )
+
+ web_cat_in_distribution_musica = fields.Many2one(
+ 'product.public.category',
+ string='Website categoría de música en distribución',
+ readonly=False,
+ related="company_id.web_cat_in_distribution_musica",
+ )
+
+ web_ribbon_in_distribution = fields.Many2one(
+ 'product.ribbon',
+ string='Website ribbon en distribución',
+ readonly=False,
+ related="company_id.web_ribbon_in_distribution",
+ )
\ No newline at end of file
diff --git a/website_product_retail/views/res_config_settings_views.xml b/website_product_retail/views/res_config_settings_views.xml
new file mode 100644
index 0000000..12f470d
--- /dev/null
+++ b/website_product_retail/views/res_config_settings_views.xml
@@ -0,0 +1,30 @@
+
+
+
+ res.config.settings.view.form.inherit.retail
+ res.config.settings
+
+
+