# -*- coding: utf-8 -*-

#    Copyright 2018 Youssef El Ouahby <youssef@yaltik.com>
#    Copyright 2018 Fabien Bourgeois <fabien@yaltik.com>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, either version 3 of the
#    License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

""" GOLEM Resource Reservation  Adaptation"""

from odoo import models, api, _
from odoo.exceptions import ValidationError


class AccountInvoice(models.Model):
    """ Account Invoice """
    _inherit = 'account.invoice'

    @api.multi
    def add_to_invoice(self):
        """Add reservation to existing invoice """
        for invoice in self:
            reservation_id = self._context.get('reservation_id')
            if not reservation_id:
                raise ValidationError(_('There is no reservation passed through '
                                        'context. Please contact your administrator.'))
            reservation = self.env['golem.resource.reservation'].browse(reservation_id)
            if not reservation:
                raise ValidationError(_('No reservation has been found with {} '
                                        'reservation ID. Please contact your '
                                        'administrator.'.format(reservation_id)))
            reservation.create_invoice_line(invoice)