41 lines
1.8 KiB
Python
41 lines
1.8 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from odoo import api, fields, models
|
||
|
|
||
|
|
||
|
class ProductReplenish(models.TransientModel):
|
||
|
_inherit = 'product.replenish'
|
||
|
|
||
|
@api.depends('route_id')
|
||
|
def _compute_date_planned(self):
|
||
|
super()._compute_date_planned()
|
||
|
for rec in self:
|
||
|
if self.route_id.name == "Manufacture":
|
||
|
rec.date_planned = rec._get_date_planned(rec.route_id, product_tmpl_id=rec.product_tmpl_id)
|
||
|
|
||
|
def _get_record_to_notify(self, date):
|
||
|
order_line = self.env['mrp.production'].search([('write_date', '>=', date)], limit=1)
|
||
|
return order_line or super()._get_record_to_notify(date)
|
||
|
|
||
|
def _get_replenishment_order_notification_link(self, production):
|
||
|
if production._name == 'mrp.production':
|
||
|
action = self.env.ref('mrp.action_mrp_production_form')
|
||
|
return [{
|
||
|
'label': production.name,
|
||
|
'url': f'#action={action.id}&id={production.id}&model=mrp.production'
|
||
|
}]
|
||
|
return super()._get_replenishment_order_notification_link(production)
|
||
|
|
||
|
def _get_date_planned(self, route_id, **kwargs):
|
||
|
date = super()._get_date_planned(route_id, **kwargs)
|
||
|
if route_id.name != 'Manufacture':
|
||
|
return date
|
||
|
delay = 0
|
||
|
product_tmpl_id = kwargs.get('product_tmpl_id') or self.product_tmpl_id
|
||
|
if bool(self.env['ir.config_parameter'].sudo().get_param('mrp.use_manufacturing_lead')):
|
||
|
delay += self.env.company.manufacturing_lead
|
||
|
if product_tmpl_id and product_tmpl_id.bom_ids:
|
||
|
delay += product_tmpl_id.bom_ids[0].produce_delay + product_tmpl_id.bom_ids[0].days_to_prepare_mo
|
||
|
return fields.Datetime.add(date, days=delay)
|