mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
[FIX] account_asset_disposal: Several fixes
* Separate state * Don't close on last depreciation line * Refine interface * Full Spanish translation
This commit is contained in:
committed by
Luis M. Ontalba
parent
f965bc03d4
commit
174e2b5d4d
@@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-06-09 11:20+0000\n"
|
||||
"PO-Revision-Date: 2016-06-09 11:20+0000\n"
|
||||
"POT-Creation-Date: 2017-02-06 18:15+0000\n"
|
||||
"PO-Revision-Date: 2017-02-06 18:15+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -15,26 +15,41 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.asset,annual_percentage:0
|
||||
msgid "Annual depreciation percentage"
|
||||
msgstr "Porcentajes anuales de depreciación"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: model:ir.model,name:account_asset_disposal.model_account_asset_asset
|
||||
msgid "Asset"
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:32
|
||||
#: model:ir.model,name:account_asset_disposal.model_account_asset_category
|
||||
msgid "Asset category"
|
||||
msgstr "Categoría de activo"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:33
|
||||
#, python-format
|
||||
msgid "Asset depreciation"
|
||||
msgstr "Depreciación del activo"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: model:ir.model,name:account_asset_disposal.model_account_asset_depreciation_line
|
||||
msgid "Asset depreciation line"
|
||||
msgstr "Línea de depreciación del activo"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: view:account.asset.disposal.wizard:account_asset_disposal.account_asset_disposal_wizard_form
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:19
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:20
|
||||
#, python-format
|
||||
msgid "Asset disposal"
|
||||
msgstr "Baja del activo"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:45
|
||||
#: code:addons/account_asset_disposal/models/account_asset_asset.py:46
|
||||
#, python-format
|
||||
msgid "Asset loss"
|
||||
msgstr "Pérdida del activo"
|
||||
@@ -57,12 +72,12 @@ msgstr "Creado en"
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.disposal.wizard,display_name:0
|
||||
msgid "Display Name"
|
||||
msgstr "Nombre a mostrar"
|
||||
msgstr "Nombre mostrado"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: view:account.asset.asset:account_asset_disposal.view_account_asset_asset_form
|
||||
msgid "Disposal"
|
||||
msgstr "Baja"
|
||||
msgstr "Dar de baja"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: view:account.asset.disposal.wizard:account_asset_disposal.account_asset_disposal_wizard_form
|
||||
@@ -80,11 +95,21 @@ msgstr "Fecha de baja"
|
||||
msgid "Disposal move"
|
||||
msgstr "Asiento de baja"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: selection:account.asset.asset,state:0
|
||||
msgid "Disposed"
|
||||
msgstr "Dado de baja"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.disposal.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: model:ir.model,name:account_asset_disposal.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr "Apuntes contables"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.disposal.wizard,__last_update:0
|
||||
msgid "Last Modified on"
|
||||
@@ -100,11 +125,22 @@ msgstr "Última modificación por"
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última actualización en"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.category,loss_account_id:0
|
||||
msgid "Loss Account"
|
||||
msgstr "Cuenta de pérdidas"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: field:account.asset.disposal.wizard,loss_account_id:0
|
||||
msgid "Loss account"
|
||||
msgstr "Cuenta de pérdidas"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: code:addons/account_asset_disposal/models/account_move_line.py:20
|
||||
#, python-format
|
||||
msgid "Move line '%s' is related with a disposed asset '%s'"
|
||||
msgstr "El apunte '%s' está relacionado con el activo dado de baja '%s'"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: view:account.asset.asset:account_asset_disposal.view_account_asset_asset_form
|
||||
msgid "Undo disposal"
|
||||
@@ -114,3 +150,9 @@ msgstr "Cancelar baja"
|
||||
#: view:account.asset.disposal.wizard:account_asset_disposal.account_asset_disposal_wizard_form
|
||||
msgid "or"
|
||||
msgstr "o"
|
||||
|
||||
#. module: account_asset_disposal
|
||||
#: view:account.asset.asset:account_asset_disposal.view_account_asset_asset_form
|
||||
msgid "{'invisible':[('state', '!=', 'draft')]}"
|
||||
msgstr "{'invisible':[('state', '!=', 'draft')]}"
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import account_asset_category
|
||||
from . import account_asset_depreciation_line
|
||||
from . import account_asset_asset
|
||||
from . import account_move_line
|
||||
|
||||
@@ -8,6 +8,9 @@ from openerp import models, fields, api, _
|
||||
class AccountAssetAsset(models.Model):
|
||||
_inherit = "account.asset.asset"
|
||||
|
||||
state = fields.Selection(
|
||||
selection_add=[('disposed', 'Disposed')],
|
||||
)
|
||||
disposal_date = fields.Date(string="Disposal date")
|
||||
disposal_move_id = fields.Many2one(
|
||||
comodel_name='account.move', string="Disposal move")
|
||||
@@ -104,8 +107,11 @@ class AccountAssetAsset(models.Model):
|
||||
if asset.disposal_move_id:
|
||||
asset.disposal_move_id.button_cancel()
|
||||
asset.disposal_move_id.unlink()
|
||||
if asset.currency_id.is_zero(asset.value_residual):
|
||||
asset.state = 'close'
|
||||
else:
|
||||
asset.state = 'open'
|
||||
return self.write({
|
||||
'disposal_date': False,
|
||||
'disposal_move_id': False,
|
||||
'state': 'open',
|
||||
})
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import models, fields, api
|
||||
|
||||
|
||||
class AccountAssetDepreciationLine(models.Model):
|
||||
_inherit = "account.asset.depreciation.line"
|
||||
|
||||
@api.multi
|
||||
def create_move(self):
|
||||
res = super(AccountAssetDepreciationLine, self).create_move()
|
||||
for line in self:
|
||||
asset = line.asset_id
|
||||
if asset.state == 'close' and not asset.disposal_move_id:
|
||||
# Asset is closed and no disposal move created,
|
||||
# Create disposal move with date (using this priority):
|
||||
# - Depreciation date via context
|
||||
# - Last posted deprecition line
|
||||
# - Current depreciated line
|
||||
# - Today
|
||||
last_posted_line = self.search([
|
||||
('asset_id', '=', asset.id),
|
||||
('move_id', '!=', False),
|
||||
], order='depreciation_date DESC', limit=1)
|
||||
depreciation_date = (
|
||||
self.env.context.get('depreciation_date') or
|
||||
last_posted_line.depreciation_date or
|
||||
line.depreciation_date or
|
||||
fields.Date.context_today(line)
|
||||
)
|
||||
asset.disposal_move_create(
|
||||
depreciation_date, asset.category_id.loss_account_id)
|
||||
asset.write({'disposal_date': depreciation_date})
|
||||
return res
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||
# Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
||||
# Copyright 2017 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp import models, api, _
|
||||
@@ -10,12 +11,12 @@ class AccountMoveLine(models.Model):
|
||||
_inherit = "account.move.line"
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
def unlink(self, check=True):
|
||||
for line in self:
|
||||
if (line.asset_id.state == 'close' and
|
||||
if (line.asset_id.state == 'disposed' and
|
||||
not self.env.context.get('asset_disposal_undo', False)):
|
||||
name = '%s:%s' % (line.move_id.name, line.name)
|
||||
raise UserError(
|
||||
_("Move line '%s' is related with a closed asset '%s'") %
|
||||
_("Move line '%s' is related with a disposed asset '%s'") %
|
||||
(name, line.asset_id.name))
|
||||
return super(AccountMoveLine, self).unlink()
|
||||
return super(AccountMoveLine, self).unlink(check=check)
|
||||
|
||||
@@ -11,7 +11,7 @@ class TestAccountAsset(TransactionCase):
|
||||
# Create a payable account for suppliers
|
||||
self.account_suppliers = self.env['account.account'].create({
|
||||
'name': 'Suppliers',
|
||||
'code': '410000',
|
||||
'code': '410x',
|
||||
'type': 'other',
|
||||
'user_type': self.env.ref('account.data_account_type_payable').id,
|
||||
'reconcile': True,
|
||||
@@ -37,7 +37,7 @@ class TestAccountAsset(TransactionCase):
|
||||
# Create an account for assets
|
||||
self.account_asset = self.env['account.account'].create({
|
||||
'name': 'Asset',
|
||||
'code': '216000',
|
||||
'code': '216x',
|
||||
'type': 'other',
|
||||
'user_type': self.env.ref('account.data_account_type_asset').id,
|
||||
'reconcile': False,
|
||||
@@ -45,7 +45,7 @@ class TestAccountAsset(TransactionCase):
|
||||
# Create an account for assets dereciation
|
||||
self.account_asset_depreciation = self.env['account.account'].create({
|
||||
'name': 'Asset depreciation',
|
||||
'code': '281600',
|
||||
'code': '2816x',
|
||||
'type': 'other',
|
||||
'user_type': self.env.ref('account.data_account_type_asset').id,
|
||||
'reconcile': False,
|
||||
@@ -53,7 +53,7 @@ class TestAccountAsset(TransactionCase):
|
||||
# Create an account for assets expense
|
||||
self.account_asset_expense = self.env['account.account'].create({
|
||||
'name': 'Asset expense',
|
||||
'code': '681000',
|
||||
'code': '681x',
|
||||
'type': 'other',
|
||||
'user_type': self.env.ref('account.data_account_type_expense').id,
|
||||
'reconcile': False,
|
||||
@@ -61,7 +61,7 @@ class TestAccountAsset(TransactionCase):
|
||||
# Create an account for assets loss
|
||||
self.account_asset_loss = self.env['account.account'].create({
|
||||
'name': 'Asset loss',
|
||||
'code': '671000',
|
||||
'code': '671x',
|
||||
'type': 'other',
|
||||
'user_type': self.env.ref('account.data_account_type_expense').id,
|
||||
'reconcile': False,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||
<!-- Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
||||
Copyright 2017 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -->
|
||||
<openerp>
|
||||
<data>
|
||||
@@ -12,17 +13,28 @@
|
||||
<button name="set_to_close" position="attributes">
|
||||
<attribute name='invisible'>1</attribute>
|
||||
</button>
|
||||
<button name="compute_depreciation_board" position="attributes">
|
||||
<attribute name="attrs">{'invisible':[('state', '!=', 'draft')]}</attribute>
|
||||
</button>
|
||||
<button name="set_to_close" position="after">
|
||||
<button name="action_disposal" states="open"
|
||||
string="Disposal" type="object" class="oe_highlight"/>
|
||||
<button name="action_disposal_undo" states="close"
|
||||
string="Undo disposal" type="object" class="oe_highlight"/>
|
||||
<button name="action_disposal"
|
||||
states="open,close"
|
||||
string="Disposal"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
/>
|
||||
<button name="action_disposal_undo"
|
||||
states="disposed"
|
||||
string="Undo disposal"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
/>
|
||||
</button>
|
||||
<field name="purchase_date" position="after">
|
||||
<field name="disposal_date"
|
||||
attrs="{'invisible': [('state', 'not in', ('close',))]}"/>
|
||||
attrs="{'invisible': [('state', '!=', 'disposed')]}"/>
|
||||
<field name="disposal_move_id"
|
||||
attrs="{'invisible': [('state', 'not in', ('close',))]}"/>
|
||||
attrs="{'invisible': [('state', '!=', 'disposed')]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -34,4 +34,4 @@ class AccountAssetDisposalWizard(models.TransientModel):
|
||||
asset.disposal_move_create(
|
||||
self.disposal_date, self.loss_account_id)
|
||||
self._disposal_date_set(assets)
|
||||
return assets.set_to_close()
|
||||
return assets.write({'state': 'disposed'})
|
||||
|
||||
Reference in New Issue
Block a user