24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from odoo import api, models
|
||
|
|
||
|
|
||
|
class ReportBomStructure(models.AbstractModel):
|
||
|
_inherit = 'report.mrp.report_bom_structure'
|
||
|
|
||
|
@api.model
|
||
|
def _is_buy_route(self, rules, product, bom):
|
||
|
return super()._is_buy_route(rules, product, bom) and (not bom or bom.type != 'subcontract')
|
||
|
|
||
|
@api.model
|
||
|
def _get_resupply_availability(self, route_info, components):
|
||
|
resupply_state, resupply_delay = super()._get_resupply_availability(route_info, components)
|
||
|
if route_info.get('route_type') == 'subcontract':
|
||
|
# always add `Purchase security lead days` and `Days to Purchase`
|
||
|
extra_delay = route_info['bom'].company_id.po_lead + route_info['bom'].company_id.days_to_purchase
|
||
|
route_info['lead_time'] += extra_delay
|
||
|
subcontract_delay = (resupply_delay if resupply_delay else 0) + extra_delay
|
||
|
return ('estimated', subcontract_delay)
|
||
|
return (resupply_state, resupply_delay)
|