[12.0][FIX] account_asset_management: date_range -> account_fiscal_year, account_analytic_id without domain

This commit is contained in:
Henrik
2019-06-28 22:05:16 +02:00
committed by OCA-git-bot
parent 33f9d7f468
commit 76d6b9b926
4 changed files with 51 additions and 54 deletions

View File

@@ -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

View File

@@ -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):

View 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)

View File

@@ -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)