Set analytic lines on account move from asset update

Closes #12131
This commit is contained in:
Cédric Krier committed 2023-03-18 00:47:46 +01:00
1 parent e20b7a15ce
commit df56af6cde
4 files changed
+29 -2

No files matched your search

+3 -2
View File
@@ -887,13 +887,15 @@ class UpdateAsset(Wizard):
Period = pool.get('account.period')
Move = pool.get('account.move')
period = Period.find(asset.company, self.show_move.date)
return Move(
move = Move(
company=asset.company,
origin=asset,
journal=asset.account_journal.id,
period=period,
date=self.show_move.date,
)
move.lines = self.get_move_lines(asset)
return move
def get_move_lines(self, asset):
MoveLine = Pool().get('account.move.line')
@@ -918,7 +920,6 @@ class UpdateAsset(Wizard):
if not (latest_move_date <= self.show_move.date <= next_date):
raise ValueError('The update move date is invalid')
move = self.get_move(self.record)
move.lines = self.get_move_lines(self.record)
move.save()
self.model.write([self.record], {
'update_moves': [('add', [move.id])],
+4
View File
@@ -15,3 +15,7 @@ def register():
asset.Asset,
module='analytic_invoice', type_='model',
depends=['account_asset'])
Pool.register(
asset.UpdateAsset,
module='analytic_invoice', type_='wizard',
depends=['account_asset'])
+9
View File
@@ -57,3 +57,12 @@ class Asset(AnalyticMixin, metaclass=PoolMeta):
analytic_lines.extend(
entry.get_analytic_lines(line, move.date))
line.analytic_lines = analytic_lines
class UpdateAsset(metaclass=PoolMeta):
__name__ = 'account.asset.update'
def get_move(self, asset):
move = super().get_move(asset)
asset.set_analytic_lines(move, self.show_move.counterpart_account)
return move
@@ -132,6 +132,19 @@ Create Moves for 1 month::
>>> analytic_account.credit
Decimal('0.00')
Update the asset::
>>> update = Wizard('account.asset.update', [asset])
>>> update.form.value = Decimal('950.00')
>>> update.execute('update_asset')
>>> update.form.date = update.form.next_depreciation_date
>>> update.execute('create_move')
>>> analytic_account.reload()
>>> analytic_account.debit
Decimal('150.00')
>>> analytic_account.credit
Decimal('0.00')
Close the asset::
>>> asset.click('close')