stock_average_daily_sale: Set default root location on WH

Set default average_daily_sale_root_location on WH create.
Default stock location of the new WH is used for this purpose
This commit is contained in:
twalter-c2c
2024-08-27 16:00:49 +02:00
parent 59bf5481e0
commit fe2ac11e8e
2 changed files with 19 additions and 3 deletions

View File

@@ -4,7 +4,6 @@ from odoo import api, fields, models
class StockWarehouse(models.Model):
_inherit = "stock.warehouse"
average_daily_sale_root_location_id = fields.Many2one(
@@ -13,8 +12,8 @@ class StockWarehouse(models.Model):
compute="_compute_average_daily_sale_root_location_id",
store=True,
readonly=False,
required=True,
precompute=True,
check_company=True,
help="This is the root location for daily sale average stock computations",
)
@@ -26,4 +25,17 @@ class StockWarehouse(models.Model):
for warehouse in self.filtered(
lambda w: not w.average_daily_sale_root_location_id
):
if not warehouse.lot_stock_id:
continue
warehouse.average_daily_sale_root_location_id = warehouse.lot_stock_id
@api.model_create_multi
def create(self, vals_list):
# set the lot_stock_id of a newly created WH as an Average Daily Sale Root Location
warehouses = super().create(vals_list)
for warehouse, vals in zip(warehouses, vals_list):
if vals.get("lot_stock_id") and not vals.get(
"average_daily_sale_root_location_id"
):
warehouse.average_daily_sale_root_location_id = vals["lot_stock_id"]
return warehouses

View File

@@ -10,7 +10,11 @@
<field name="arch" type="xml">
<xpath expr="//group[1]" position="after">
<group string="Average Sales" name="average_sale_reporting">
<field name="average_daily_sale_root_location_id" />
<field name="lot_stock_id" invisible="1" />
<field
name="average_daily_sale_root_location_id"
attrs="{'required': [('lot_stock_id', '!=', False)]}"
/>
</group>
</xpath>
</field>