31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
from odoo import models, fields
|
|
|
|
|
|
class FusionSyncStock(models.Model):
|
|
_name = 'fusion.sync.stock'
|
|
_description = 'Per-Warehouse Remote Stock Level'
|
|
_rec_name = 'sync_warehouse_id'
|
|
_order = 'sync_warehouse_id'
|
|
|
|
mapping_id = fields.Many2one(
|
|
'fusion.product.sync.mapping', string='Product Mapping',
|
|
required=True, ondelete='cascade', index=True)
|
|
sync_warehouse_id = fields.Many2one(
|
|
'fusion.sync.warehouse', string='Remote Warehouse',
|
|
required=True, ondelete='cascade', index=True)
|
|
config_id = fields.Many2one(
|
|
related='mapping_id.config_id', store=True, index=True)
|
|
qty_available = fields.Float(string='On Hand', default=0.0)
|
|
qty_forecast = fields.Float(string='Forecast', default=0.0)
|
|
last_sync = fields.Datetime(string='Last Updated')
|
|
|
|
_sql_constraints = [
|
|
('unique_mapping_warehouse',
|
|
'UNIQUE(mapping_id, sync_warehouse_id)',
|
|
'Only one stock record per product mapping per warehouse.'),
|
|
]
|