# -*- coding: utf-8 -*- ############################################################################## # # Cybrosys Technologies Pvt. Ltd. # Copyright (C) 2016-TODAY Cybrosys Technologies(). # Author: Cybrosys Technologies() # you can modify it under the terms of the GNU LESSER # GENERAL PUBLIC LICENSE (LGPL v3), Version 3. # # It is forbidden to publish, distribute, sublicense, or sell copies # of the Software or modified copies of the Software. # # 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. # # You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE # GENERAL PUBLIC LICENSE (LGPL v3) along with this program. # If not, see . # ############################################################################## from odoo import models, api, _ from odoo.exceptions import UserError class WarningOnSaleInvoice(models.TransientModel): _inherit = 'sale.advance.payment.inv' @api.multi def _create_invoice(self, order, so_line, amount): total_inv = 0 for invoices in self.env['account.invoice'].search([('origin', '=', order.name)]): total_inv += invoices.amount_total total_inv += amount if total_inv > order.amount_total: raise UserError(_('You are trying to invoice more than total price')) return super(WarningOnSaleInvoice, self)._create_invoice(order, so_line, amount)