Browse Source

[IMP] beesdoo_account: check if user has group AND amount is < 0

pull/188/head
Vincent Van Rossem 4 years ago
parent
commit
80d617876c
  1. 16
      beesdoo_account/models/account_invoice.py

16
beesdoo_account/models/account_invoice.py

@ -1,4 +1,5 @@
from odoo import api, fields, models, _ from odoo import api, fields, models, _
from odoo.tools import float_compare
from odoo.exceptions import UserError from odoo.exceptions import UserError
@ -7,16 +8,23 @@ class AccountInvoice(models.Model):
@api.multi @api.multi
def action_invoice_open(self): def action_invoice_open(self):
to_open_invoices = self.filtered(lambda inv: inv.state != "open")
if self.user_has_groups( if self.user_has_groups(
"beesdoo_account." "group_validate_invoice_negative_total_amount" "beesdoo_account." "group_validate_invoice_negative_total_amount"
) and to_open_invoices.filtered(
lambda inv: float_compare(
inv.amount_total,
0.0,
precision_rounding=inv.currency_id.rounding,
)
== -1
): ):
return self.action_invoice_negative_amount_open()
return self.action_invoice_negative_amount_open(to_open_invoices)
return super(AccountInvoice, self).action_invoice_open() return super(AccountInvoice, self).action_invoice_open()
@api.multi @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")
def action_invoice_negative_amount_open(self, to_open_invoices):
"""Similar to action_invoice_open without UserError on an invoice with a negative total amount"""
if to_open_invoices.filtered(lambda inv: not inv.partner_id): if to_open_invoices.filtered(lambda inv: not inv.partner_id):
raise UserError( raise UserError(
_( _(

Loading…
Cancel
Save