oca-workflow-process/odoo-bringout-oca-project-project_stock/project_stock/models/project_project.py

46 lines
1.6 KiB
Python

# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
from odoo import api, fields, models
class ProjectProject(models.Model):
_inherit = "project.project"
picking_type_id = fields.Many2one(
comodel_name="stock.picking.type",
string="Operation Type",
readonly=False,
domain="[('company_id', '=', company_id)]",
index=True,
check_company=True,
)
location_id = fields.Many2one(
comodel_name="stock.location",
string="Source Location",
readonly=False,
check_company=True,
index=True,
help="Default location from which materials are consumed.",
)
location_dest_id = fields.Many2one(
comodel_name="stock.location",
string="Destination Location",
readonly=False,
index=True,
check_company=True,
help="Default location to which materials are consumed.",
)
stock_analytic_date = fields.Date(string="Analytic date")
@api.onchange("picking_type_id")
def _onchange_picking_type_id(self):
self.location_id = self.picking_type_id.default_location_src_id.id
self.location_dest_id = self.picking_type_id.default_location_dest_id.id
def write(self, vals):
"""Update location information on pending moves when changed."""
res = super().write(vals)
field_names = ("location_id", "location_dest_id")
if any(vals.get(field) for field in field_names):
self.task_ids._update_moves_info()
return res