diff --git a/stock_average_daily_sale/demo/stock_average_daily_sale_config.xml b/stock_average_daily_sale/demo/stock_average_daily_sale_config.xml
index d48349f..0963cea 100644
--- a/stock_average_daily_sale/demo/stock_average_daily_sale_config.xml
+++ b/stock_average_daily_sale/demo/stock_average_daily_sale_config.xml
@@ -13,6 +13,8 @@
0.3
2
1
+
+
0.3
2
1
+
+
0.3
2
1
+
+
diff --git a/stock_average_daily_sale/models/stock_average_daily_sale.py b/stock_average_daily_sale/models/stock_average_daily_sale.py
index 2bd6eb6..1441007 100644
--- a/stock_average_daily_sale/models/stock_average_daily_sale.py
+++ b/stock_average_daily_sale/models/stock_average_daily_sale.py
@@ -228,6 +228,7 @@ class StockAverageDailySale(models.Model):
AND sl_dest.usage in ('customer', 'production')
AND sm.date BETWEEN cfg.date_from AND cfg.date_to
AND sm.state = 'done'
+ AND sm.warehouse_id = cfg.warehouse_id
WINDOW pid AS (PARTITION BY sm.product_id, sm.warehouse_id)
),
diff --git a/stock_average_daily_sale/models/stock_average_daily_sale_config.py b/stock_average_daily_sale/models/stock_average_daily_sale_config.py
index 056f101..59ae09f 100644
--- a/stock_average_daily_sale/models/stock_average_daily_sale_config.py
+++ b/stock_average_daily_sale/models/stock_average_daily_sale_config.py
@@ -1,7 +1,7 @@
# Copyright 2021 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from odoo import fields, models
+from odoo import _, fields, models
from odoo.addons.stock_storage_type_putaway_abc.models.stock_location import (
ABC_SELECTION,
@@ -9,17 +9,18 @@ from odoo.addons.stock_storage_type_putaway_abc.models.stock_location import (
class StockAverageDailySaleConfig(models.Model):
-
_name = "stock.average.daily.sale.config"
_description = "Average daily sales computation parameters"
+ check_company_auto = True
- abc_classification_profile_id = fields.Many2one(
- comodel_name="abc.classification.profile",
- required=True,
- ondelete="cascade",
- )
abc_classification_level = fields.Selection(
- selection=ABC_SELECTION, required=True, readonly=True
+ selection=ABC_SELECTION, required=True, default="b"
+ )
+ company_id = fields.Many2one(
+ string="Company",
+ comodel_name="res.company",
+ required=True,
+ default=lambda self: self.env.company,
)
standard_deviation_exclude_factor = fields.Float(required=True, digits=(2, 2))
warehouse_id = fields.Many2one(
@@ -30,10 +31,8 @@ class StockAverageDailySaleConfig(models.Model):
default=lambda self: self.env["stock.warehouse"].search(
[("company_id", "=", self.env.company.id)], limit=1
),
- readonly=True,
)
exclude_weekends = fields.Boolean(
- string="Exclude Weekends",
help="Set to True only if you do not expect any orders/deliveries during "
"the weekends. If set to True, stock moves done on weekends won't be "
"taken into account to calculate the average daily usage",
@@ -53,3 +52,11 @@ class StockAverageDailySaleConfig(models.Model):
string="Number of days of quantities in stock", required=True, default=2
)
safety_factor = fields.Float(digits=(2, 2), required=True)
+
+ _sql_constraints = [
+ (
+ "abc_classification_level_unique",
+ "UNIQUE(abc_classification_level, warehouse_id)",
+ _("Abc Classification Level must be unique per warehouse"),
+ )
+ ]
diff --git a/stock_average_daily_sale/tests/common.py b/stock_average_daily_sale/tests/common.py
index 0cb1728..0dcb710 100644
--- a/stock_average_daily_sale/tests/common.py
+++ b/stock_average_daily_sale/tests/common.py
@@ -87,12 +87,13 @@ class CommonAverageSaleTest:
"product_id": product.id,
"name": product.name,
"location_id": origin_location.id,
+ "warehouse_id": origin_location.warehouse_id.id,
"location_dest_id": cls.customers.id,
"product_uom_qty": qty,
"priority": "1",
}
)
- # TODO: Check why this is necessary - it's in materialzed view query
+ # TODO: Check why this is necessary - it's in materialized view query
move.priority = "1"
return move
diff --git a/stock_average_daily_sale/tests/test_average_daily_sale.py b/stock_average_daily_sale/tests/test_average_daily_sale.py
index 5a2d42f..8bb6725 100644
--- a/stock_average_daily_sale/tests/test_average_daily_sale.py
+++ b/stock_average_daily_sale/tests/test_average_daily_sale.py
@@ -189,7 +189,8 @@ class TestAverageSale(CommonAverageSaleTest, TransactionCase):
def test_view_refreshed(self):
self._refresh()
with self.assertNoLogs(
- "odoo.addons.stock_average_daily_sale.models.stock_average_daily_sale"
+ "odoo.addons.stock_average_daily_sale.models.stock_average_daily_sale",
+ level="DEBUG",
):
self.env["stock.average.daily.sale"].search_read(
[("product_id", "=", self.product_1.id)]
diff --git a/stock_average_daily_sale/views/stock_average_daily_sale_config.xml b/stock_average_daily_sale/views/stock_average_daily_sale_config.xml
index d3afe41..2c21b58 100644
--- a/stock_average_daily_sale/views/stock_average_daily_sale_config.xml
+++ b/stock_average_daily_sale/views/stock_average_daily_sale_config.xml
@@ -2,13 +2,14 @@
+
- stock.average.daily.sale.config.tree (in stock_average_daily_sale)
+ stock.average.daily.sale.config.tree
stock.average.daily.sale.config
-
+
+
+
@@ -16,24 +17,54 @@
-
+
+
+ stock.average.daily.sale.config.form
+ stock.average.daily.sale.config
+
+
+
+
+
Average daily sales computation parameters
+ ir.actions.act_window
stock.average.daily.sale.config
- tree
+ tree,form
+
[]
{}
+
+