mirror of
https://github.com/bringout/oca-ocb-pos.git
synced 2026-04-23 01:22:02 +02:00
37 lines
1.5 KiB
Python
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']
|