From fdb3e276347df74e8163434fb53b6e0f44a375d5 Mon Sep 17 00:00:00 2001 From: Dario Lodeiros Date: Sun, 18 Nov 2018 13:14:19 +0100 Subject: [PATCH] [ADD] constrain duplicated reservation lines --- hotel/models/hotel_reservation_line.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hotel/models/hotel_reservation_line.py b/hotel/models/hotel_reservation_line.py index b00f290ae..bc87355af 100644 --- a/hotel/models/hotel_reservation_line.py +++ b/hotel/models/hotel_reservation_line.py @@ -1,8 +1,9 @@ # Copyright 2017-2018 Alexandre Díaz # Copyright 2017 Dario Lodeiros # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import models, fields +from odoo import models, fields, api, _ from odoo.addons import decimal_precision as dp +from odoo.exceptions import ValidationError class HotelReservationLine(models.Model): _name = "hotel.reservation.line" @@ -16,3 +17,13 @@ class HotelReservationLine(models.Model): discount = fields.Float( string='Discount (%)', digits=dp.get_precision('Discount'), default=0.0) + + @api.constrains('date') + def constrains_duplicated_date(self): + for record in self: + duplicated = record.reservation_id.reservation_line_ids.filtered( + lambda r: r.date == record.date and + r.id != record.id + ) + if duplicated: + raise ValidationError(_('Duplicated reservation line date'))