mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
[12.0][FIX] account_asset_management: date_range -> account_fiscal_year, account_analytic_id without domain
This commit is contained in:
@@ -3,7 +3,7 @@ from . import account_asset
|
||||
from . import account_asset_profile
|
||||
from . import account_asset_line
|
||||
from . import account_asset_recompute_trigger
|
||||
from . import account_fiscal_year
|
||||
from . import account_invoice
|
||||
from . import account_move
|
||||
#from . import date_range
|
||||
from . import res_config_settings
|
||||
|
||||
@@ -193,9 +193,7 @@ class AccountAsset(models.Model):
|
||||
store=True, readonly=True)
|
||||
account_analytic_id = fields.Many2one(
|
||||
comodel_name='account.analytic.account',
|
||||
string='Analytic account',
|
||||
domain=[('type', '!=', 'view'),
|
||||
('state', 'not in', ('close', 'cancelled'))])
|
||||
string='Analytic account')
|
||||
|
||||
@api.model
|
||||
def _default_company_id(self):
|
||||
|
||||
49
account_asset_management/models/account_fiscal_year.py
Normal file
49
account_asset_management/models/account_fiscal_year.py
Normal file
@@ -0,0 +1,49 @@
|
||||
# Copyright 2009-2017 Noviat
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
import time
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import api, models
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class AccountFiscalYear(models.Model):
|
||||
_inherit = 'account.fiscal.year'
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
date_from = datetime.strptime(vals.get('date_from'), '%Y-%m-%d')
|
||||
date_to = datetime.strptime(vals.get('date_to'), '%Y-%m-%d')
|
||||
if not date_to == date_from + relativedelta(years=1, days=-1):
|
||||
recompute_vals = {
|
||||
'reason': 'creation of fiscalyear %s' % vals.get('name'),
|
||||
'company_id':
|
||||
vals.get('company_id') or
|
||||
self.env.user.company_id.id,
|
||||
'date_trigger': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'state': 'open',
|
||||
}
|
||||
self.env['account.asset.recompute.trigger'].sudo().create(
|
||||
recompute_vals)
|
||||
return super().create(vals)
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
if vals.get('date_from') or vals.get('date_to'):
|
||||
for fy in self:
|
||||
recompute_vals = {
|
||||
'reason':
|
||||
'duration change of fiscalyear %s' % fy.name,
|
||||
'company_id': fy.company_id.id,
|
||||
'date_trigger':
|
||||
time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'state': 'open',
|
||||
}
|
||||
self.env['account.asset.recompute.trigger'].sudo().\
|
||||
create(recompute_vals)
|
||||
return super().write(vals)
|
||||
@@ -1,50 +0,0 @@
|
||||
# Copyright 2009-2017 Noviat
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import time
|
||||
|
||||
from odoo import api, models
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
|
||||
|
||||
class DateRange(models.Model):
|
||||
_inherit = 'date.range'
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
# TODO:
|
||||
# change logic to avoid table recompute overhead
|
||||
# when a regular (duration = 1 year) new FY is created
|
||||
fy_types = self.env['date.range.type'].search(
|
||||
[('fiscal_year', '=', True)])
|
||||
if vals.get('type_id') in fy_types._ids:
|
||||
recompute_vals = {
|
||||
'reason': 'creation of fiscalyear %s' % vals.get('code'),
|
||||
'company_id':
|
||||
vals.get('company_id') or
|
||||
self.env.user.company_id.id,
|
||||
'date_trigger': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'state': 'open',
|
||||
}
|
||||
self.env['account.asset.recompute.trigger'].sudo().create(
|
||||
recompute_vals)
|
||||
return super().create(vals)
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
fy_types = self.env['date.range.type'].search(
|
||||
[('fiscal_year', '=', True)])
|
||||
if vals.get('type_id') in fy_types.ids:
|
||||
if vals.get('date_start') or vals.get('date_end'):
|
||||
for fy in self:
|
||||
recompute_vals = {
|
||||
'reason':
|
||||
'duration change of fiscalyear %s' % fy.name,
|
||||
'company_id': fy.company_id.id,
|
||||
'date_trigger':
|
||||
time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'state': 'open',
|
||||
}
|
||||
self.env['account.asset.recompute.trigger'].sudo().\
|
||||
create(recompute_vals)
|
||||
return super().write(vals)
|
||||
Reference in New Issue
Block a user