Files
Odoo-Modules/fusion_plating/fusion_plating_configurator/models/res_partner.py
gsinghpal de6336ba42 changes
2026-05-27 10:36:48 -04:00

77 lines
2.7 KiB
Python

# -*- coding: utf-8 -*-
# Copyright 2026 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
from odoo import api, fields, models, _
class ResPartner(models.Model):
_inherit = 'res.partner'
x_fc_part_catalog_ids = fields.One2many(
'fp.part.catalog', 'partner_id',
string='Part Catalog',
)
x_fc_part_count = fields.Integer(
string='Parts',
compute='_compute_part_count',
)
# Default lead-time band for new Express Orders. Set once per
# customer in their Plating profile; auto-copies onto every new
# Express Order via the partner-onchange on fp.direct.order.wizard.
x_fc_default_lead_time_min_days = fields.Integer(
string='Default Lead Time Min (days)',
default=0,
help='Pre-fills the Lead Time Min field on new Express Orders '
'for this customer. Operator can override per-order.',
)
x_fc_default_lead_time_max_days = fields.Integer(
string='Default Lead Time Max (days)',
default=0,
help='Pre-fills the Lead Time Max field on new Express Orders '
'for this customer. Operator can override per-order.',
)
def _compute_part_count(self):
for partner in self:
partner.x_fc_part_count = self.env['fp.part.catalog'].search_count([
('partner_id', '=', partner.id),
('is_latest_revision', '=', True),
])
def action_view_parts(self):
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'name': f'Parts — {self.name}',
'res_model': 'fp.part.catalog',
'view_mode': 'list,form',
'domain': [('partner_id', '=', self.id), ('is_latest_revision', '=', True)],
'context': {'default_partner_id': self.id},
'target': 'current',
}
def action_fp_import_parts(self):
"""Open the CSV import wizard with this partner pre-selected."""
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'name': _('Import Parts from CSV'),
'res_model': 'fp.part.catalog.import.wizard',
'view_mode': 'form',
'target': 'new',
'context': {'default_partner_id': self.id},
}
def action_fp_new_direct_order(self):
"""Open the Direct Order wizard with this partner pre-selected."""
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'name': _('New Direct Order'),
'res_model': 'fp.direct.order.wizard',
'view_mode': 'form',
'target': 'new',
'context': {'default_partner_id': self.id},
}