diff options
Diffstat (limited to 'addons/account/wizard/account_validate_account_move.py')
| -rw-r--r-- | addons/account/wizard/account_validate_account_move.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/addons/account/wizard/account_validate_account_move.py b/addons/account/wizard/account_validate_account_move.py new file mode 100644 index 00000000..3be48a2b --- /dev/null +++ b/addons/account/wizard/account_validate_account_move.py @@ -0,0 +1,23 @@ +from odoo import models, fields, _ +from odoo.exceptions import UserError + + +class ValidateAccountMove(models.TransientModel): + _name = "validate.account.move" + _description = "Validate Account Move" + + force_post = fields.Boolean(string="Force", help="Entries in the future are set to be auto-posted by default. Check this checkbox to post them now.") + + def validate_move(self): + if self._context.get('active_model') == 'account.move': + domain = [('id', 'in', self._context.get('active_ids', [])), ('state', '=', 'draft')] + elif self._context.get('active_model') == 'account.journal': + domain = [('journal_id', '=', self._context.get('active_id')), ('state', '=', 'draft')] + else: + raise UserError(_("Missing 'active_model' in context.")) + + moves = self.env['account.move'].search(domain).filtered('line_ids') + if not moves: + raise UserError(_('There are no journal items in the draft state to post.')) + moves._post(not self.force_post) + return {'type': 'ir.actions.act_window_close'} |
