oca-ocb-pos/odoo-bringout-oca-ocb-pos_restaurant/pos_restaurant/models/restaurant_order_course.py
Ernad Husremovic 3ca647e428 19.0 vanilla
2026-03-09 09:29:53 +01:00

37 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
from uuid import uuid4
class RestaurantOrderCourse(models.Model):
_name = 'restaurant.order.course'
_description = 'POS Restaurant Order Course'
_inherit = ['pos.load.mixin']
fired = fields.Boolean(string="Fired", default=False)
fired_date = fields.Datetime(string="Fired Date")
uuid = fields.Char(string='Uuid', readonly=True, default=lambda self: str(uuid4()), copy=False)
index = fields.Integer(string="Course index", default=0)
order_id = fields.Many2one('pos.order', string='Order Ref', required=True, index=True, ondelete='cascade')
line_ids = fields.One2many('pos.order.line', 'course_id', string="Order Lines", readonly=True)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if vals.get('fired') and not vals.get('fired_date'):
vals['fired_date'] = fields.Datetime.now()
return super().create(vals_list)
def write(self, vals):
if vals.get('fired') and not self.fired_date:
vals['fired_date'] = fields.Datetime.now()
return super().write(vals)
@api.model
def _load_pos_data_domain(self, data, config):
return [('order_id', 'in', [order['id'] for order in data['pos.order']])]
@api.model
def _load_pos_data_fields(self, config):
return ['uuid', 'fired', 'order_id', 'line_ids', 'index', 'write_date']