diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/v14_indoteknik/models | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/v14_indoteknik/models')
| -rw-r--r-- | addons/v14_indoteknik/models/__init__.py | 4 | ||||
| -rw-r--r-- | addons/v14_indoteknik/models/account_move.py | 33 | ||||
| -rw-r--r-- | addons/v14_indoteknik/models/account_period.py | 130 |
3 files changed, 167 insertions, 0 deletions
diff --git a/addons/v14_indoteknik/models/__init__.py b/addons/v14_indoteknik/models/__init__.py new file mode 100644 index 00000000..19d6b2d8 --- /dev/null +++ b/addons/v14_indoteknik/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import account_period +from . import account_move
\ No newline at end of file diff --git a/addons/v14_indoteknik/models/account_move.py b/addons/v14_indoteknik/models/account_move.py new file mode 100644 index 00000000..4063c2d3 --- /dev/null +++ b/addons/v14_indoteknik/models/account_move.py @@ -0,0 +1,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'))
\ No newline at end of file diff --git a/addons/v14_indoteknik/models/account_period.py b/addons/v14_indoteknik/models/account_period.py new file mode 100644 index 00000000..fb2a99e2 --- /dev/null +++ b/addons/v14_indoteknik/models/account_period.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- + +from odoo import api, fields, models, _ +from odoo.exceptions import UserError, RedirectWarning, ValidationError, except_orm, Warning +from datetime import datetime + + +class AccountPeriodLine(models.Model): + _name = "account.period.line" + + reference = fields.Many2one('account.period', string="Reference") + start_date = fields.Date('Start Date') + end_date = fields.Date('End Date') + state = fields.Selection([('Open','Open'),('Closed','Closed')], string="Status", default="Open") + + def action_close_period(self): + for res in self: + res.write({'state': 'Closed'}) + + def action_open_period(self): + for res in self: + res.write({'state': 'Open'}) + +class AccountPeriod(models.Model): + _name = "account.period" + + name = fields.Char('Period Name') + year = fields.Char('Year') + start_date = fields.Date('Start Date') + end_date = fields.Date('End Date') + line_ids = fields.One2many('account.period.line', 'reference', string='Lines') + state = fields.Selection([('Open','Open'),('Closed','Closed')], string="Status", default="Open") + + def action_create_period(self): + for res in self: + start_date1 = datetime(int(res.year), 1, 1) + end_date1 = datetime(int(res.year), 1, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date1, + 'end_date': end_date1 + }) + + start_date2 = datetime(int(res.year), 2, 1) + end_date2 = datetime(int(res.year), 2, 28) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date2, + 'end_date': end_date2 + }) + + start_date3 = datetime(int(res.year), 3, 1) + end_date3 = datetime(int(res.year), 3, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date3, + 'end_date': end_date3 + }) + + start_date4 = datetime(int(res.year), 4, 1) + end_date4 = datetime(int(res.year), 4, 30) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date4, + 'end_date': end_date4 + }) + + start_date5 = datetime(int(res.year), 5, 1) + end_date5 = datetime(int(res.year), 5, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date5, + 'end_date': end_date5 + }) + + start_date6 = datetime(int(res.year), 6, 1) + end_date6 = datetime(int(res.year), 6, 30) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date6, + 'end_date': end_date6 + }) + + start_date7 = datetime(int(res.year), 7, 1) + end_date7 = datetime(int(res.year), 7, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date7, + 'end_date': end_date7 + }) + + start_date8 = datetime(int(res.year), 8, 1) + end_date8 = datetime(int(res.year), 8, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date8, + 'end_date': end_date8 + }) + + start_date9 = datetime(int(res.year), 9, 1) + end_date9 = datetime(int(res.year), 9, 30) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date9, + 'end_date': end_date9 + }) + + start_date10 = datetime(int(res.year), 10, 1) + end_date10 = datetime(int(res.year), 10, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date10, + 'end_date': end_date10 + }) + + start_date11 = datetime(int(res.year), 11, 1) + end_date11 = datetime(int(res.year), 11, 30) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date11, + 'end_date': end_date11 + }) + + start_date12 = datetime(int(res.year), 12, 1) + end_date12 = datetime(int(res.year), 12, 31) + self.env['account.period.line'].create({ + 'reference': res.id, + 'start_date': start_date12, + 'end_date': end_date12 + })
\ No newline at end of file |
