1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# -*- 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'))
|