# -*- coding: utf-8 -*- from odoo import api, fields, models, _ from odoo.exceptions import UserError, RedirectWarning, ValidationError, except_orm, Warning from datetime import datetime class AccountMove(models.Model): _inherit = "account.move" @api.depends('date') def _get_period_id(self): for res in self: period_id = '' period_id = self.env['account.period.line'].search([ ('start_date', '<', res.date), ('end_date', '>', res.date) ]) if period_id: res.period_start_date = period_id[0].start_date res.period_end_date = period_id[0].end_date res.period_id = period_id[0].id period_start_date = fields.Date(compute="_get_period_id", string="Period") period_end_date = fields.Date(compute="_get_period_id", string="Period") period_id = fields.Many2one(compute="_get_period_id", comodel_name='account.period.line', string="Period") def action_post(self): if self.period_id and self.period_id.state == "Open": super(AccountMove, self).action_post() else: raise ValidationError(_('Period of this Journal has been closed'))