diff --git a/account_asset_management/models/account_asset.py b/account_asset_management/models/account_asset.py
index 408519e9e..f5f20675c 100644
--- a/account_asset_management/models/account_asset.py
+++ b/account_asset_management/models/account_asset.py
@@ -34,6 +34,7 @@ class AccountAsset(models.Model):
_name = "account.asset"
_description = "Asset"
_order = "date_start desc, code, name"
+ _check_company_auto = True
account_move_line_ids = fields.One2many(
comodel_name="account.move.line",
@@ -41,6 +42,7 @@ class AccountAsset(models.Model):
string="Entries",
readonly=True,
copy=False,
+ check_company=True,
)
move_line_check = fields.Boolean(
compute="_compute_move_line_check", string="Has accounting entries"
@@ -98,6 +100,7 @@ class AccountAsset(models.Model):
change_default=True,
required=True,
states=READONLY_STATES,
+ check_company=True,
)
group_ids = fields.Many2many(
comodel_name="account.asset.group",
@@ -252,6 +255,7 @@ class AccountAsset(models.Model):
string="Depreciation Lines",
copy=False,
states=READONLY_STATES,
+ check_company=True,
)
company_id = fields.Many2one(
comodel_name="res.company",
@@ -402,6 +406,7 @@ class AccountAsset(models.Model):
if self.filtered(
lambda a: a.method_time == "year"
and not a.method_number
+ and a.method_end
and a.method_end <= a.date_start
):
raise UserError(_("The Start Date must precede the Ending Date."))
diff --git a/account_asset_management/models/account_asset_group.py b/account_asset_management/models/account_asset_group.py
index ecd5155b0..56b96e37a 100644
--- a/account_asset_management/models/account_asset_group.py
+++ b/account_asset_management/models/account_asset_group.py
@@ -12,6 +12,7 @@ class AccountAssetGroup(models.Model):
_description = "Asset Group"
_order = "code, name"
_parent_store = True
+ _check_company_auto = True
name = fields.Char(string="Name", size=64, required=True, index=True)
code = fields.Char(index=True)
@@ -26,11 +27,13 @@ class AccountAssetGroup(models.Model):
comodel_name="account.asset.group",
string="Parent Asset Group",
ondelete="restrict",
+ check_company=True,
)
child_ids = fields.One2many(
comodel_name="account.asset.group",
inverse_name="parent_id",
string="Child Asset Groups",
+ check_company=True,
)
@api.model
diff --git a/account_asset_management/models/account_asset_line.py b/account_asset_management/models/account_asset_line.py
index 79b1a911b..d7a93ad07 100644
--- a/account_asset_management/models/account_asset_line.py
+++ b/account_asset_management/models/account_asset_line.py
@@ -10,10 +10,15 @@ class AccountAssetLine(models.Model):
_name = "account.asset.line"
_description = "Asset depreciation table line"
_order = "type, line_date"
+ _check_company_auto = True
name = fields.Char(string="Depreciation Name", size=64, readonly=True)
asset_id = fields.Many2one(
- comodel_name="account.asset", string="Asset", required=True, ondelete="cascade"
+ comodel_name="account.asset",
+ string="Asset",
+ required=True,
+ ondelete="cascade",
+ check_company=True,
)
previous_id = fields.Many2one(
comodel_name="account.asset.line",
@@ -42,7 +47,10 @@ class AccountAssetLine(models.Model):
line_date = fields.Date(string="Date", required=True)
line_days = fields.Integer(string="Days", readonly=True)
move_id = fields.Many2one(
- comodel_name="account.move", string="Depreciation Entry", readonly=True
+ comodel_name="account.move",
+ string="Depreciation Entry",
+ readonly=True,
+ check_company=True,
)
move_check = fields.Boolean(
compute="_compute_move_check", string="Posted", store=True
@@ -61,6 +69,12 @@ class AccountAssetLine(models.Model):
help="Set this flag for entries of previous fiscal years "
"for which Odoo has not generated accounting entries.",
)
+ company_id = fields.Many2one(
+ "res.company",
+ store=True,
+ readonly=True,
+ related="asset_id.company_id",
+ )
@api.depends("amount", "previous_id", "type")
def _compute_values(self):
diff --git a/account_asset_management/models/account_asset_profile.py b/account_asset_management/models/account_asset_profile.py
index 1d43d2b00..11830f7dd 100644
--- a/account_asset_management/models/account_asset_profile.py
+++ b/account_asset_management/models/account_asset_profile.py
@@ -7,6 +7,7 @@ from odoo.exceptions import UserError
class AccountAssetProfile(models.Model):
_name = "account.asset.profile"
+ _check_company_auto = True
_description = "Asset profile"
_order = "name"
@@ -20,41 +21,48 @@ class AccountAssetProfile(models.Model):
)
account_asset_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
string="Asset Account",
+ check_company=True,
required=True,
)
account_depreciation_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
string="Depreciation Account",
+ check_company=True,
required=True,
)
account_expense_depreciation_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
string="Depr. Expense Account",
+ check_company=True,
required=True,
)
account_plus_value_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
+ check_company=True,
string="Plus-Value Account",
)
account_min_value_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
+ check_company=True,
string="Min-Value Account",
)
account_residual_value_id = fields.Many2one(
comodel_name="account.account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
+ check_company=True,
string="Residual Value Account",
)
journal_id = fields.Many2one(
comodel_name="account.journal",
- domain=[("type", "=", "general")],
+ domain="[('type', '=', 'general'), ('company_id', '=', company_id)]",
string="Journal",
+ check_company=True,
required=True,
)
company_id = fields.Many2one(
@@ -68,6 +76,7 @@ class AccountAssetProfile(models.Model):
relation="account_asset_profile_group_rel",
column1="profile_id",
column2="group_id",
+ check_company=True,
string="Asset Groups",
)
method = fields.Selection(
diff --git a/account_asset_management/models/account_move.py b/account_asset_management/models/account_move.py
index 34a13a969..d1bccfd9f 100644
--- a/account_asset_management/models/account_move.py
+++ b/account_asset_management/models/account_move.py
@@ -30,6 +30,17 @@ FIELDS_AFFECTS_ASSET_MOVE_LINE = {
class AccountMove(models.Model):
_inherit = "account.move"
+ asset_count = fields.Integer(compute="_compute_asset_count")
+
+ def _compute_asset_count(self):
+ for rec in self:
+ assets = (
+ self.env["account.asset.line"]
+ .search([("move_id", "=", self.id)])
+ .mapped("asset_id")
+ )
+ rec.asset_count = len(assets)
+
def unlink(self):
# for move in self:
deprs = self.env["account.asset.line"].search(
@@ -116,15 +127,38 @@ class AccountMove(models.Model):
line_vals.update(asset_profile_id=False, asset_id=False)
return move_vals
+ def action_view_assets(self):
+ assets = (
+ self.env["account.asset.line"]
+ .search([("move_id", "=", self.id)])
+ .mapped("asset_id")
+ )
+ action = self.env.ref("account_asset_management.account_asset_action")
+ action_dict = action.read()[0]
+ if len(assets) == 1:
+ res = self.env.ref(
+ "account_asset_management.account_asset_view_form", False
+ )
+ action_dict["views"] = [(res and res.id or False, "form")]
+ action_dict["res_id"] = assets.id
+ elif assets:
+ action_dict["domain"] = [("id", "in", assets.ids)]
+ else:
+ action_dict = {"type": "ir.actions.act_window_close"}
+ return action_dict
+
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
asset_profile_id = fields.Many2one(
- comodel_name="account.asset.profile", string="Asset Profile"
+ comodel_name="account.asset.profile",
+ string="Asset Profile",
)
asset_id = fields.Many2one(
- comodel_name="account.asset", string="Asset", ondelete="restrict"
+ comodel_name="account.asset",
+ string="Asset",
+ ondelete="restrict",
)
@api.onchange("account_id")
diff --git a/account_asset_management/readme/HISTORY.rst b/account_asset_management/readme/HISTORY.rst
index de8ef0eed..e15948e1e 100644
--- a/account_asset_management/readme/HISTORY.rst
+++ b/account_asset_management/readme/HISTORY.rst
@@ -3,6 +3,11 @@
* [BREAKING] Removed all functionality associated with `account.fiscal.year`
+13.0.2.0.0 (2021-02-19)
+~~~~~~~~~~~~~~~~~~~~~~~
+
+* Add support for multi-company
+
13.0.1.0.0 (2019-10-21)
~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/account_asset_management/views/account_asset.xml b/account_asset_management/views/account_asset.xml
index 136846719..a008823cf 100644
--- a/account_asset_management/views/account_asset.xml
+++ b/account_asset_management/views/account_asset.xml
@@ -378,6 +378,7 @@
Assets
account.asset
+ tree,form
diff --git a/account_asset_management/views/account_move.xml b/account_asset_management/views/account_move.xml
index fb37bac13..aa0769a7b 100644
--- a/account_asset_management/views/account_move.xml
+++ b/account_asset_management/views/account_move.xml
@@ -5,6 +5,22 @@
account.move
+
+
+
-
+
diff --git a/account_asset_management/views/account_move_line.xml b/account_asset_management/views/account_move_line.xml
index 2f86d7d1d..73a2a1691 100644
--- a/account_asset_management/views/account_move_line.xml
+++ b/account_asset_management/views/account_move_line.xml
@@ -6,7 +6,10 @@
-
+
diff --git a/account_asset_management/wizard/account_asset_remove.py b/account_asset_management/wizard/account_asset_remove.py
index d73636447..7a43fea7e 100644
--- a/account_asset_management/wizard/account_asset_remove.py
+++ b/account_asset_management/wizard/account_asset_remove.py
@@ -15,7 +15,15 @@ _logger = logging.getLogger(__name__)
class AccountAssetRemove(models.TransientModel):
_name = "account.asset.remove"
_description = "Remove Asset"
+ _check_company_auto = True
+ company_id = fields.Many2one(
+ comodel_name="res.company",
+ string="Company",
+ readonly=True,
+ required=True,
+ default=lambda self: self._default_company_id(),
+ )
date_remove = fields.Date(
string="Asset Removal Date",
required=True,
@@ -30,25 +38,25 @@ class AccountAssetRemove(models.TransientModel):
account_sale_id = fields.Many2one(
comodel_name="account.account",
string="Asset Sale Account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
default=lambda self: self._default_account_sale_id(),
)
account_plus_value_id = fields.Many2one(
comodel_name="account.account",
string="Plus-Value Account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
default=lambda self: self._default_account_plus_value_id(),
)
account_min_value_id = fields.Many2one(
comodel_name="account.account",
string="Min-Value Account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
default=lambda self: self._default_account_min_value_id(),
)
account_residual_value_id = fields.Many2one(
comodel_name="account.account",
string="Residual Value Account",
- domain=[("deprecated", "=", False)],
+ domain="[('deprecated', '=', False), ('company_id', '=', company_id)]",
default=lambda self: self._default_account_residual_value_id(),
)
posting_regime = fields.Selection(
@@ -69,6 +77,12 @@ class AccountAssetRemove(models.TransientModel):
if self.sale_value < 0:
raise ValidationError(_("The Sale Value must be positive!"))
+ @api.model
+ def _default_company_id(self):
+ asset_id = self.env.context.get("active_id")
+ asset = self.env["account.asset"].browse(asset_id)
+ return asset.company_id
+
@api.model
def _default_sale_value(self):
return self._get_sale()["sale_value"]
diff --git a/account_asset_management/wizard/account_asset_remove.xml b/account_asset_management/wizard/account_asset_remove.xml
index 23326f2d1..4c885a208 100644
--- a/account_asset_management/wizard/account_asset_remove.xml
+++ b/account_asset_management/wizard/account_asset_remove.xml
@@ -6,6 +6,7 @@