Cédric Krier pushed to branch branch/default at Tryton / Tryton


Commits:
327d6259 by Cédric Krier at 2023-03-18T00:47:46+01:00
Set analytic lines on account move from asset update

Closes #12131
- - - - -


4 changed files:

- modules/account_asset/asset.py
- modules/analytic_invoice/__init__.py
- modules/analytic_invoice/asset.py
- modules/analytic_invoice/tests/scenario_analytic_invoice_asset.rst


Changes:

=====================================
modules/account_asset/asset.py
=====================================
@@ -887,10 +887,10 @@
         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,
             )
@@ -891,9 +891,11 @@
             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 @@
         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])],


=====================================
modules/analytic_invoice/__init__.py
=====================================
@@ -15,3 +15,7 @@
         asset.Asset,
         module='analytic_invoice', type_='model',
         depends=['account_asset'])
+    Pool.register(
+        asset.UpdateAsset,
+        module='analytic_invoice', type_='wizard',
+        depends=['account_asset'])


=====================================
modules/analytic_invoice/asset.py
=====================================
@@ -57,3 +57,12 @@
                         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


=====================================
modules/analytic_invoice/tests/scenario_analytic_invoice_asset.rst
=====================================
@@ -132,6 +132,19 @@
     >>> 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')



View it on Heptapod: 
https://foss.heptapod.net/tryton/tryton/-/commit/327d6259e56a3be84ed1264c07db87b36f475f83

-- 
View it on Heptapod: 
https://foss.heptapod.net/tryton/tryton/-/commit/327d6259e56a3be84ed1264c07db87b36f475f83
You're receiving this email because of your account on foss.heptapod.net.


Reply via email to