diff --git a/addons/account_asset/__init__.py b/addons/account_asset/__init__.py index f826640892b..8f7bf4b27dd 100644 --- a/addons/account_asset/__init__.py +++ b/addons/account_asset/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. -import account_asset -import account_asset_invoice +import models import wizard import report diff --git a/addons/account_asset/__openerp__.py b/addons/account_asset/__openerp__.py index f323fe820b5..20737a9887f 100644 --- a/addons/account_asset/__openerp__.py +++ b/addons/account_asset/__openerp__.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. { 'name': 'Assets Management', - 'version': '1.0', 'depends': ['account_accountant'], 'description': """ Assets management @@ -15,26 +15,21 @@ Keeps track of depreciations, and creates corresponding journal entries. 'category': 'Accounting', 'sequence': 32, 'demo': [ - 'account_asset_demo.yml', + 'data/account_asset_demo.yml', ], - # 'test': [ - # '../account/test/account_minimal_test.xml', - # 'test/account_asset_demo_test.xml', - # ], 'data': [ 'security/account_asset_security.xml', 'security/ir.model.access.csv', - 'wizard/account_asset_change_duration_view.xml', - 'wizard/wizard_asset_compute_view.xml', - 'views/account_asset_view.xml', - 'views/account_asset_invoice_view.xml', - 'report/account_asset_report_view.xml', - 'views/account_asset.xml', - 'account_asset_cron.xml', + 'wizard/asset_depreciation_confirmation_wizard_views.xml', + 'wizard/asset_modify_views.xml', + 'views/account_asset_views.xml', + 'views/account_invoice_views.xml', + 'views/account_asset_templates.xml', + 'views/product_views.xml', + 'report/account_asset_report_views.xml', + 'data/account_asset_data.xml', ], 'qweb': [ "static/src/xml/account_asset_template.xml", ], - 'installable': True, - 'application': False, } diff --git a/addons/account_asset/account_asset_cron.xml b/addons/account_asset/data/account_asset_data.xml similarity index 100% rename from addons/account_asset/account_asset_cron.xml rename to addons/account_asset/data/account_asset_data.xml diff --git a/addons/account_asset/account_asset_demo.yml b/addons/account_asset/data/account_asset_demo.yml similarity index 100% rename from addons/account_asset/account_asset_demo.yml rename to addons/account_asset/data/account_asset_demo.yml diff --git a/addons/account_asset/models/__init__.py b/addons/account_asset/models/__init__.py new file mode 100644 index 00000000000..458b4b1b230 --- /dev/null +++ b/addons/account_asset/models/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import account +import account_asset +import account_invoice +import product diff --git a/addons/account_asset/models/account.py b/addons/account_asset/models/account.py new file mode 100644 index 00000000000..a0e7f76d459 --- /dev/null +++ b/addons/account_asset/models/account.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from openerp import api, fields, models + + +class AccountMove(models.Model): + _inherit = 'account.move' + + asset_depreciation_ids = fields.One2many('account.asset.depreciation.line', 'move_id', string='Assets Depreciation Lines', ondelete="restrict") + + @api.multi + def button_cancel(self): + for move in self: + for line in move.asset_depreciation_ids: + line.move_posted_check = False + return super(AccountMove, self).button_cancel() + + @api.multi + def post(self): + for move in self: + for depreciation_line in move.asset_depreciation_ids: + depreciation_line.post_lines_and_close_asset() + return super(AccountMove, self).post() diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/models/account_asset.py similarity index 97% rename from addons/account_asset/account_asset.py rename to addons/account_asset/models/account_asset.py index 7db9e20a322..a1606eecef8 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/models/account_asset.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. from datetime import date, datetime from dateutil.relativedelta import relativedelta -from openerp import api, fields, models, _ -from openerp.exceptions import UserError, ValidationError -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF +from odoo import api, fields, models, _ +from odoo.exceptions import UserError, ValidationError +from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF class AccountAssetCategory(models.Model): @@ -49,6 +50,11 @@ class AccountAssetCategory(models.Model): else: self.method_period = 12 + @api.onchange('method_time') + def _onchange_method_time(self): + if self.method_time != 'number': + self.prorata = False + class AccountAssetAsset(models.Model): _name = 'account.asset.asset' @@ -532,7 +538,7 @@ class AccountAssetDepreciationLine(models.Model): created_moves.post() return [x.id for x in created_moves] - api.multi + @api.multi def post_lines_and_close_asset(self): # we re-evaluate the assets to determine whether we can close them for line in self: @@ -573,23 +579,3 @@ class AccountAssetDepreciationLine(models.Model): msg = _("You cannot delete posted installment lines.") raise UserError(msg) return super(AccountAssetDepreciationLine, self).unlink() - - -class AccountMove(models.Model): - _inherit = 'account.move' - - asset_depreciation_ids = fields.One2many('account.asset.depreciation.line', 'move_id', string='Assets Depreciation Lines', ondelete="restrict") - - @api.multi - def button_cancel(self): - for move in self: - for line in move.asset_depreciation_ids: - line.move_posted_check = False - return super(AccountMove, self).button_cancel() - - @api.multi - def post(self): - for move in self: - for depreciation_line in move.asset_depreciation_ids: - depreciation_line.post_lines_and_close_asset() - return super(AccountMove, self).post() diff --git a/addons/account_asset/account_asset_invoice.py b/addons/account_asset/models/account_invoice.py similarity index 80% rename from addons/account_asset/account_asset_invoice.py rename to addons/account_asset/models/account_invoice.py index a53f2959138..7f4782dfb25 100644 --- a/addons/account_asset/account_asset_invoice.py +++ b/addons/account_asset/models/account_invoice.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. from datetime import datetime from dateutil.relativedelta import relativedelta -from openerp import api, fields, models -from openerp.exceptions import Warning -from openerp.tools.translate import _ -import openerp.addons.decimal_precision as dp -from openerp.tools import DEFAULT_SERVER_DATE_FORMAT as DF +from odoo import api, fields, models +from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF + +import odoo.addons.decimal_precision as dp class AccountInvoice(models.Model): @@ -85,7 +85,6 @@ class AccountInvoiceLine(models.Model): self.onchange_asset_category_id() return result - @api.onchange('product_id') def _onchange_product_id(self): vals = super(AccountInvoiceLine, self)._onchange_product_id() @@ -96,11 +95,6 @@ class AccountInvoiceLine(models.Model): self.asset_category_id = self.product_id.product_tmpl_id.asset_category_id return vals - @api.onchange('asset_category_id') - def onchange_asset_category_id(self): - if self.asset_category_id: - self.account_id = self.asset_category_id.account_asset_id - def _set_additional_fields(self, invoice): if not self.asset_category_id: if invoice.type == 'out_invoice': @@ -108,19 +102,3 @@ class AccountInvoiceLine(models.Model): elif invoice.type == 'in_invoice': self.asset_category_id = self.product_id.product_tmpl_id.asset_category_id.id super(AccountInvoiceLine, self)._set_additional_fields(invoice) - - -class ProductTemplate(models.Model): - _inherit = 'product.template' - asset_category_id = fields.Many2one('account.asset.category', string='Asset Type', company_dependent=True, ondelete="restrict") - deferred_revenue_category_id = fields.Many2one('account.asset.category', string='Deferred Revenue Type', company_dependent=True, ondelete="restrict") - - - @api.multi - def _get_asset_accounts(self): - res = super(ProductTemplate, self)._get_asset_accounts() - if self.asset_category_id: - res['stock_input'] = self.property_account_expense_id - if self.deferred_revenue_category_id: - res['stock_output'] = self.property_account_income_id - return res \ No newline at end of file diff --git a/addons/account_asset/models/product.py b/addons/account_asset/models/product.py new file mode 100644 index 00000000000..42472f88e5d --- /dev/null +++ b/addons/account_asset/models/product.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from openerp import api, fields, models + + +class ProductTemplate(models.Model): + _inherit = 'product.template' + + asset_category_id = fields.Many2one('account.asset.category', string='Asset Type', company_dependent=True, ondelete="restrict") + deferred_revenue_category_id = fields.Many2one('account.asset.category', string='Deferred Revenue Type', company_dependent=True, ondelete="restrict") + + @api.multi + def _get_asset_accounts(self): + res = super(ProductTemplate, self)._get_asset_accounts() + if self.asset_category_id: + res['stock_input'] = self.property_account_expense_id + if self.deferred_revenue_category_id: + res['stock_output'] = self.property_account_income_id + return res diff --git a/addons/account_asset/report/__init__.py b/addons/account_asset/report/__init__.py index c60e4c9e043..8f70e34da0e 100644 --- a/addons/account_asset/report/__init__.py +++ b/addons/account_asset/report/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. import account_asset_report diff --git a/addons/account_asset/report/account_asset_report.py b/addons/account_asset/report/account_asset_report.py index 1cafe349079..d743f64c6fb 100644 --- a/addons/account_asset/report/account_asset_report.py +++ b/addons/account_asset/report/account_asset_report.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -from openerp import fields, models, tools +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models class AssetAssetReport(models.Model): @@ -24,9 +26,9 @@ class AssetAssetReport(models.Model): unposted_value = fields.Float(string='Unposted Amount', readonly=True) company_id = fields.Many2one('res.company', string='Company', readonly=True) - def init(self, cr): - tools.drop_view_if_exists(cr, 'asset_asset_report') - cr.execute(""" + @api.model_cr + def init(self): + self._cr.execute(""" create or replace view asset_asset_report as ( select min(dl.id) as id, diff --git a/addons/account_asset/report/account_asset_report_view.xml b/addons/account_asset/report/account_asset_report_views.xml similarity index 100% rename from addons/account_asset/report/account_asset_report_view.xml rename to addons/account_asset/report/account_asset_report_views.xml diff --git a/addons/account_asset/test/account_asset_demo_test.xml b/addons/account_asset/test/account_asset_demo_test.xml index c85a45707cd..c9e85df7323 100644 --- a/addons/account_asset/test/account_asset_demo_test.xml +++ b/addons/account_asset/test/account_asset_demo_test.xml @@ -1,4 +1,4 @@ - + - - Product Template (form) - product.template - - - - - - - + Assets diff --git a/addons/account_asset/views/account_asset_invoice_view.xml b/addons/account_asset/views/account_invoice_views.xml similarity index 94% rename from addons/account_asset/views/account_asset_invoice_view.xml rename to addons/account_asset/views/account_invoice_views.xml index aebd076638d..a4055631d01 100644 --- a/addons/account_asset/views/account_asset_invoice_view.xml +++ b/addons/account_asset/views/account_invoice_views.xml @@ -1,4 +1,4 @@ - + diff --git a/addons/account_asset/views/product_views.xml b/addons/account_asset/views/product_views.xml new file mode 100644 index 00000000000..57f8c00c27a --- /dev/null +++ b/addons/account_asset/views/product_views.xml @@ -0,0 +1,16 @@ + + + + + Product Template (form) + product.template + + + + + + + + \ No newline at end of file diff --git a/addons/account_asset/wizard/__init__.py b/addons/account_asset/wizard/__init__.py index 0425aadb5d8..e793ab075f7 100644 --- a/addons/account_asset/wizard/__init__.py +++ b/addons/account_asset/wizard/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. -import account_asset_change_duration -import wizard_asset_compute +import asset_depreciation_confirmation_wizard +import asset_modify diff --git a/addons/account_asset/wizard/wizard_asset_compute.py b/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py similarity index 90% rename from addons/account_asset/wizard/wizard_asset_compute.py rename to addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py index a7925dc4475..00b3fd3e36e 100644 --- a/addons/account_asset/wizard/wizard_asset_compute.py +++ b/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- -from openerp import api, fields, models, _ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ class AssetDepreciationConfirmationWizard(models.TransientModel): diff --git a/addons/account_asset/wizard/wizard_asset_compute_view.xml b/addons/account_asset/wizard/asset_depreciation_confirmation_wizard_views.xml similarity index 100% rename from addons/account_asset/wizard/wizard_asset_compute_view.xml rename to addons/account_asset/wizard/asset_depreciation_confirmation_wizard_views.xml diff --git a/addons/account_asset/wizard/account_asset_change_duration.py b/addons/account_asset/wizard/asset_modify.py similarity index 92% rename from addons/account_asset/wizard/account_asset_change_duration.py rename to addons/account_asset/wizard/asset_modify.py index 8564968434c..9f8ce7cd497 100644 --- a/addons/account_asset/wizard/account_asset_change_duration.py +++ b/addons/account_asset/wizard/asset_modify.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + from lxml import etree -from openerp import api, fields, models -from openerp.osv.orm import setup_modifiers -from openerp.tools.translate import _ +from odoo import api, fields, models, _ +from odoo.osv.orm import setup_modifiers + class AssetModify(models.TransientModel): _name = 'asset.modify' @@ -54,7 +56,8 @@ class AssetModify(models.TransientModel): if 'method_end' in fields and asset.method_time == 'end': res.update({'method_end': asset.method_end}) if self.env.context.get('active_id'): - res['asset_method_time'] = self._get_asset_method_time() + active_asset = self.env['account.asset.asset'].browse(self.env.context.get('active_id')) + res['asset_method_time'] = active_asset.method_time return res @api.multi diff --git a/addons/account_asset/wizard/account_asset_change_duration_view.xml b/addons/account_asset/wizard/asset_modify_views.xml similarity index 100% rename from addons/account_asset/wizard/account_asset_change_duration_view.xml rename to addons/account_asset/wizard/asset_modify_views.xml