Use revenue account when the asset value increases or residual value is positive
Closes #14311 #14312
This commit is contained in:
@@ -606,7 +606,10 @@ class Asset(Workflow, ModelSQL, ModelView):
|
||||
square_amount = asset_line.credit - depreciation_line.debit
|
||||
if square_amount:
|
||||
if not account:
|
||||
account = self.product.account_revenue_used
|
||||
if square_amount < 0:
|
||||
account = self.product.account_revenue_used
|
||||
else:
|
||||
account = self.product.account_expense_used
|
||||
counter_part_line = MoveLine(
|
||||
debit=square_amount if square_amount > 0 else 0,
|
||||
credit=-square_amount if square_amount < 0 else 0,
|
||||
@@ -860,12 +863,24 @@ class UpdateAsset(Wizard):
|
||||
return min(next_dates)
|
||||
|
||||
def default_show_move(self, fields):
|
||||
amount = self.start.value - self.record.value
|
||||
if amount <= 0:
|
||||
depreciation_account = (
|
||||
self.record.product.account_depreciation_used)
|
||||
counterpart_account = self.record.product.account_expense_used
|
||||
else:
|
||||
if self.record.supplier_invoice_line:
|
||||
account_asset = (
|
||||
self.record.supplier_invoice_line.account.current())
|
||||
else:
|
||||
account_asset = self.record.product.account_asset_used
|
||||
depreciation_account = account_asset
|
||||
counterpart_account = self.record.product.account_revenue_used
|
||||
return {
|
||||
'amount': self.start.value - self.record.value,
|
||||
'amount': amount,
|
||||
'date': datetime.date.today(),
|
||||
'depreciation_account': (
|
||||
self.record.product.account_depreciation_used.id),
|
||||
'counterpart_account': self.record.product.account_expense_used.id,
|
||||
'depreciation_account': depreciation_account,
|
||||
'counterpart_account': counterpart_account,
|
||||
'latest_move_date': self.get_latest_move_date(self.record),
|
||||
'next_depreciation_date': self.get_next_depreciation_date(
|
||||
self.record),
|
||||
|
||||
@@ -191,14 +191,24 @@ Update the asset::
|
||||
Decimal('42.30')
|
||||
>>> depreciation_account.reload()
|
||||
>>> depreciation_account.debit
|
||||
Decimal('100.00')
|
||||
Decimal('0.00')
|
||||
>>> depreciation_account.credit
|
||||
Decimal('112.50')
|
||||
>>> asset_account.reload()
|
||||
>>> asset_account.debit
|
||||
Decimal('1100.00')
|
||||
>>> asset_account.credit
|
||||
Decimal('0.00')
|
||||
>>> revenue.reload()
|
||||
>>> revenue.debit
|
||||
Decimal('0.00')
|
||||
>>> revenue.credit
|
||||
Decimal('100.00')
|
||||
>>> expense.reload()
|
||||
>>> expense.debit
|
||||
Decimal('112.50')
|
||||
>>> expense.credit
|
||||
Decimal('100.00')
|
||||
Decimal('0.00')
|
||||
|
||||
Create Moves for 3 other months::
|
||||
|
||||
@@ -206,16 +216,21 @@ Create Moves for 3 other months::
|
||||
>>> create_moves.form.date = (supplier_invoice.invoice_date
|
||||
... + relativedelta(months=6))
|
||||
>>> create_moves.execute('create_moves')
|
||||
>>> asset_account.reload()
|
||||
>>> asset_account.debit
|
||||
Decimal('1100.00')
|
||||
>>> asset_account.credit
|
||||
Decimal('0.00')
|
||||
>>> depreciation_account.reload()
|
||||
>>> depreciation_account.debit
|
||||
Decimal('100.00')
|
||||
Decimal('0.00')
|
||||
>>> depreciation_account.credit
|
||||
Decimal('239.28')
|
||||
>>> expense.reload()
|
||||
>>> expense.debit
|
||||
Decimal('239.28')
|
||||
>>> expense.credit
|
||||
Decimal('100.00')
|
||||
Decimal('0.00')
|
||||
|
||||
Sale the asset::
|
||||
|
||||
@@ -233,18 +248,19 @@ Sale the asset::
|
||||
'posted'
|
||||
>>> asset.reload()
|
||||
>>> assertEqual(asset.customer_invoice_line, customer_invoice.lines[0])
|
||||
>>> revenue.reload()
|
||||
>>> revenue.debit
|
||||
Decimal('860.72')
|
||||
>>> revenue.credit
|
||||
Decimal('600.00')
|
||||
Decimal('700.00')
|
||||
>>> asset_account.reload()
|
||||
>>> asset_account.debit
|
||||
Decimal('1000.00')
|
||||
Decimal('1100.00')
|
||||
>>> asset_account.credit
|
||||
Decimal('1100.00')
|
||||
>>> depreciation_account.reload()
|
||||
>>> depreciation_account.debit
|
||||
Decimal('339.28')
|
||||
Decimal('239.28')
|
||||
>>> depreciation_account.credit
|
||||
Decimal('239.28')
|
||||
|
||||
|
||||
@@ -128,8 +128,13 @@ Close the asset::
|
||||
Decimal('612.50')
|
||||
>>> depreciation_account.credit
|
||||
Decimal('112.50')
|
||||
>>> expense.reload()
|
||||
>>> expense.debit
|
||||
Decimal('1000.00')
|
||||
>>> expense.credit
|
||||
Decimal('0.00')
|
||||
>>> revenue.reload()
|
||||
>>> revenue.debit
|
||||
Decimal('887.50')
|
||||
Decimal('0.00')
|
||||
>>> revenue.credit
|
||||
Decimal('0.00')
|
||||
|
||||
Reference in New Issue
Block a user