34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import models, fields, api
|
|
|
|
|
|
class ProductTemplate(models.Model):
|
|
"""Extend product template with remote inventory visibility."""
|
|
_inherit = 'product.template'
|
|
|
|
sync_mapping_ids = fields.One2many('fusion.product.sync.mapping', 'local_product_id',
|
|
string='Remote Inventory Links')
|
|
remote_qty_available = fields.Float(
|
|
string='Remote On Hand',
|
|
compute='_compute_remote_stock',
|
|
store=False,
|
|
help='Total on-hand quantity at remote locations (Mobility Specialties)')
|
|
remote_qty_forecast = fields.Float(
|
|
string='Remote Forecast',
|
|
compute='_compute_remote_stock',
|
|
store=False,
|
|
help='Total forecasted quantity at remote locations')
|
|
has_remote_mapping = fields.Boolean(
|
|
string='Has Remote Link',
|
|
compute='_compute_remote_stock',
|
|
store=False)
|
|
|
|
@api.depends('sync_mapping_ids', 'sync_mapping_ids.remote_qty_available',
|
|
'sync_mapping_ids.remote_qty_forecast')
|
|
def _compute_remote_stock(self):
|
|
for product in self:
|
|
mappings = product.sync_mapping_ids
|
|
product.remote_qty_available = sum(mappings.mapped('remote_qty_available'))
|
|
product.remote_qty_forecast = sum(mappings.mapped('remote_qty_forecast'))
|
|
product.has_remote_mapping = bool(mappings)
|