[IMP] account_advanced_protection_features: be able to manage prevent_reset_to_draft_sent_invoice option in sale journals

This commit is contained in:
2025-08-21 18:29:16 +02:00
parent 995d7381c4
commit 288e9dd7ea
5 changed files with 26 additions and 2 deletions

View File

@@ -21,6 +21,7 @@
}, },
# always loaded # always loaded
"data": [ "data": [
"views/account_journal_views.xml"
], ],
# only loaded in demonstration mode # only loaded in demonstration mode
"demo": [], "demo": [],

View File

@@ -1 +1,2 @@
from . import account_move from . import account_move
from . import account_journal

View File

@@ -0,0 +1,6 @@
from odoo import models, fields
class AccountJournal(models.Model):
_inherit = "account.journal"
prevent_reset_to_draft_sent_invoice = fields.Boolean("Prevent to reset to draft a sent invoice")

View File

@@ -8,7 +8,7 @@ class AccountMove(models.Model):
def button_draft(self): def button_draft(self):
res = super(AccountMove, self).button_draft() res = super(AccountMove, self).button_draft()
if self.sent_by_email: if self.sent_by_email and self.journal_id.prevent_reset_to_draft_sent_invoice:
raise UserError(_( raise UserError(_(
"You cannot reset to draft this invoice because it has been sent by email." "You cannot reset to draft this invoice because it has been sent by email."
)) ))

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_journal_form_inherit_prevent_reset_to_draft" model="ir.ui.view">
<field name="name">account.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='restrict_mode_hash_table']" position="after">
<field
name="prevent_reset_to_draft_sent_invoice"
attrs="{'invisible': [('type', '!=', 'sale')]}"
/>
</xpath>
</field>
</record>
</odoo>