You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

29 lines
1.4 KiB

from odoo import api, fields, models, _
from odoo.exceptions import UserError
class AccountInvoice(models.Model):
_inherit = "account.invoice"
@api.multi
def action_invoice_open(self):
if self.user_has_groups(
'beesdoo_account.'
'group_validate_invoice_negative_total_amount'):
return self.action_invoice_negative_amount_open()
return super(AccountInvoice, self).action_invoice_open()
@api.multi
def action_invoice_negative_amount_open(self):
"""Identical to action_invoice_open without UserError on an invoice with a negative total amount"""
to_open_invoices = self.filtered(lambda inv: inv.state != 'open')
if to_open_invoices.filtered(lambda inv: not inv.partner_id):
raise UserError(_("The field Vendor is required, please complete it to validate the Vendor Bill."))
if to_open_invoices.filtered(lambda inv: inv.state != 'draft'):
raise UserError(_("Invoice must be in draft state in order to validate it."))
if to_open_invoices.filtered(lambda inv: not inv.account_id):
raise UserError(
_('No account was found to create the invoice, be sure you have installed a chart of account.'))
to_open_invoices.action_date_assign()
to_open_invoices.action_move_create()
return to_open_invoices.invoice_validate()