63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from odoo import models, fields, api
|
|
|
|
|
|
class LaundryOrderAttribute(models.Model):
|
|
"""Optional per-order badge (Urgent / Hanger / Fold / Delicate / ...).
|
|
|
|
Multi-selectable on a laundry order. Semantic flags drive behavior
|
|
without name matching, so admins can rename freely.
|
|
"""
|
|
_name = 'laundry.order.attribute'
|
|
_inherit = ['pos.load.mixin']
|
|
_description = 'Laundry Order Attribute'
|
|
_order = 'sequence, id'
|
|
|
|
name = fields.Char(string='Name', required=True, translate=True)
|
|
code = fields.Char(string='Code')
|
|
sequence = fields.Integer(default=10)
|
|
active = fields.Boolean(default=True)
|
|
|
|
color = fields.Char(string='Color')
|
|
icon_image = fields.Binary(string='Icon')
|
|
description = fields.Text(string='Description', translate=True)
|
|
|
|
extra_price = fields.Float(
|
|
string='Extra Price',
|
|
help='Reserved for future pricing rules. Not applied automatically.',
|
|
)
|
|
|
|
pos_available = fields.Boolean(string='Available in POS', default=True)
|
|
company_id = fields.Many2one(
|
|
'res.company', string='Company',
|
|
default=lambda self: self.env.company, index=True,
|
|
)
|
|
|
|
is_delivery_related = fields.Boolean(
|
|
string='Delivery Related',
|
|
help='Selecting this attribute marks the order as delivery and '
|
|
'triggers the delivery-details prompt.',
|
|
)
|
|
is_priority_related = fields.Boolean(
|
|
string='Priority Related',
|
|
help='Selecting this attribute promotes the order to urgent priority.',
|
|
)
|
|
|
|
@api.model
|
|
def _load_pos_data_domain(self, data, config):
|
|
return [
|
|
('pos_available', '=', True),
|
|
('active', '=', True),
|
|
'|',
|
|
('company_id', '=', False),
|
|
('company_id', 'in', config.company_id.ids),
|
|
]
|
|
|
|
@api.model
|
|
def _load_pos_data_fields(self, config):
|
|
return [
|
|
'id', 'name', 'code', 'sequence',
|
|
'color', 'description',
|
|
'extra_price',
|
|
'is_delivery_related', 'is_priority_related',
|
|
]
|