Skip to content

Commit

Permalink
[14.0][FIX] do not create depreciation lines with zero amount
Browse files Browse the repository at this point in the history
  • Loading branch information
sergiocorato committed Mar 23, 2023
1 parent 937d3bb commit 268549d
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 14 deletions.
2 changes: 1 addition & 1 deletion assets_management/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"category": "Localization/Italy",
"summary": "Gestione Cespiti",
"author": "Openforce, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-italy" "/tree/12.0/assets_management",
"website": "https://github.com/OCA/l10n-italy",
"license": "AGPL-3",
"depends": [
"account",
Expand Down
2 changes: 1 addition & 1 deletion assets_management/models/asset_category.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def copy(self, default=None):
def unlink(self):
if self.env["asset.asset"].sudo().search([("category_id", "in", self.ids)]):
raise UserError(
_("Cannot delete categories while they're still linked" " to an asset.")
_("Cannot delete categories while they're still linked to an asset.")
)
return super().unlink()

Expand Down
8 changes: 6 additions & 2 deletions assets_management/models/asset_depreciation.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ def check_before_generate_depreciation_lines(self, dep_date):
# Check if self is a valid recordset
if not self:
raise ValidationError(
_("Cannot create any depreciation according to current" " settings.")
_("Cannot create any depreciation according to current settings.")
)

lines = self.mapped("line_ids")
Expand Down Expand Up @@ -310,7 +310,9 @@ def generate_depreciation_lines(self, dep_date):

new_lines = self.env["asset.depreciation.line"]
for dep in self:
new_lines |= dep.generate_depreciation_lines_single(dep_date)
new_line = dep.generate_depreciation_lines_single(dep_date)
if new_line:
new_lines |= new_line

return new_lines

Expand All @@ -320,6 +322,8 @@ def generate_depreciation_lines_single(self, dep_date):
dep_nr = self.get_max_depreciation_nr() + 1
dep = self.with_context(dep_nr=dep_nr, used_asset=self.asset_id.used)
dep_amount = dep.get_depreciation_amount(dep_date)
if not dep_amount:
return False
dep = dep.with_context(dep_amount=dep_amount)

vals = dep.prepare_depreciation_line_vals(dep_date)
Expand Down
41 changes: 34 additions & 7 deletions assets_management/models/asset_depreciation_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -446,13 +446,27 @@ def get_gain_account_move_line_vals(self):

def get_historical_account_move_line_vals(self):
raise NotImplementedError(
_("Cannot create account move lines for lines of type" " `Historical`")
_("Cannot create account move lines for lines of type `Historical`")
)

def get_in_account_move_line_vals(self):
raise NotImplementedError(
_("Cannot create account move lines for lines of type `In`")
)
self.ensure_one()
credit_line_vals = {
"account_id": self.asset_id.category_id.gain_account_id.id,
"credit": self.amount,
"debit": 0.0,
"currency_id": self.currency_id.id,
"name": " - ".join((self.asset_id.make_name(), self.name)),
}

debit_line_vals = {
"account_id": self.asset_id.category_id.asset_account_id.id,
"credit": 0.0,
"debit": self.amount,
"currency_id": self.currency_id.id,
"name": " - ".join((self.asset_id.make_name(), self.name)),
}
return [credit_line_vals, debit_line_vals]

def get_loss_account_move_line_vals(self):
self.ensure_one()
Expand All @@ -473,9 +487,22 @@ def get_loss_account_move_line_vals(self):
return [credit_line_vals, debit_line_vals]

def get_out_account_move_line_vals(self):
raise NotImplementedError(
_("Cannot create account move lines for lines of type `Out`")
)
self.ensure_one()
credit_line_vals = {
"account_id": self.asset_id.category_id.asset_account_id.id,
"credit": self.amount,
"debit": 0.0,
"currency_id": self.currency_id.id,
"name": " - ".join((self.asset_id.make_name(), self.name)),
}
debit_line_vals = {
"account_id": self.asset_id.category_id.loss_account_id.id,
"credit": 0.0,
"debit": self.amount,
"currency_id": self.currency_id.id,
"name": " - ".join((self.asset_id.make_name(), self.name)),
}
return [credit_line_vals, debit_line_vals]

def needs_account_move(self):
self.ensure_one()
Expand Down
4 changes: 2 additions & 2 deletions assets_management/wizard/account_move_manage_asset.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ def check_pre_dismiss_asset(self):

if not self.move_line_ids:
raise ValidationError(
_("At least one move line is mandatory to dismiss" " an asset!")
_("At least one move line is mandatory to dismiss an asset!")
)

if not len(self.move_line_ids.mapped("move_id")) == 1:
Expand Down Expand Up @@ -303,7 +303,7 @@ def check_pre_update_asset(self):

if not self.move_line_ids:
raise ValidationError(
_("At least one move line is mandatory to update" " an asset!")
_("At least one move line is mandatory to update an asset!")
)

if not all(
Expand Down
3 changes: 2 additions & 1 deletion assets_management/wizard/asset_generate_depreciation.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ def do_generate(self):
# Add depreciation date in context just in case
deps = self.get_depreciations().with_context(dep_date=self.date_dep)
dep_lines = deps.generate_depreciation_lines(self.date_dep)
deps.post_generate_depreciation_lines(dep_lines)
if dep_lines:
deps.post_generate_depreciation_lines(dep_lines)
if self._context.get("reload_window"):
return {"type": "ir.actions.client", "tag": "reload"}

Expand Down

0 comments on commit 268549d

Please sign in to comment.