[MIG] account_netting from v11 to v12
This commit is contained in:
parent
7ed9a7e0a9
commit
6a35bf5b92
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
'name': 'Account netting',
|
'name': 'Account netting',
|
||||||
'version': '11.0.1.0.0',
|
'version': '12.0.1.0.0',
|
||||||
'summary': 'Compensate AR/AP accounts from the same partner',
|
'summary': 'Compensate AR/AP accounts from the same partner',
|
||||||
'category': 'Accounting & Finance',
|
'category': 'Accounting & Finance',
|
||||||
'author': 'Tecnativa, '
|
'author': 'Tecnativa, '
|
||||||
|
2
account_netting/readme/CONTRIBUTORS.rst
Normal file
2
account_netting/readme/CONTRIBUTORS.rst
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||||
|
* Vicent Cubells <vicent.cubells@serviciosbaeza.com>
|
8
account_netting/readme/DESCRIPTION.rst
Normal file
8
account_netting/readme/DESCRIPTION.rst
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
This module allows to compensate the balance of a receivable account with the
|
||||||
|
balance of a payable account for the same partner, creating a journal item
|
||||||
|
that reflects this operation.
|
||||||
|
|
||||||
|
**WARNING**: This operation can be forbidden in your country by the accounting
|
||||||
|
regulations, so you should check current laws before using it. For example, in
|
||||||
|
Spain, this is not allowed at first instance, unless you document well the
|
||||||
|
operation from both parties.
|
12
account_netting/readme/USAGE.rst
Normal file
12
account_netting/readme/USAGE.rst
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
From any account journal entries view:
|
||||||
|
|
||||||
|
* Accounting/Journal Entries/Journal Items
|
||||||
|
|
||||||
|
select all the lines that corresponds to both AR/AP operations from the same
|
||||||
|
partner. Click on *Action > Compensate*. If the items don't correspond to the
|
||||||
|
same partner or they aren't AR/AP accounts, you will get an error.
|
||||||
|
|
||||||
|
On contrary, a dialog box will be presented with the result of the operation
|
||||||
|
and a selection of the journal to register the operation. When you click on the
|
||||||
|
*Compensate* button, a journal entry is created with the corresponding
|
||||||
|
counterparts of the AR/AP operations.
|
@ -2,7 +2,7 @@
|
|||||||
# Copyright 2017 Tecnativa - Vicent Cubells
|
# Copyright 2017 Tecnativa - Vicent Cubells
|
||||||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
||||||
|
|
||||||
import openerp.tests.common as common
|
import odoo.tests.common as common
|
||||||
|
|
||||||
|
|
||||||
class TestAccountNetting(common.SavepointCase):
|
class TestAccountNetting(common.SavepointCase):
|
||||||
|
@ -7,6 +7,7 @@ from odoo import _, api, exceptions, fields, models
|
|||||||
|
|
||||||
class AccountMoveMakeNetting(models.TransientModel):
|
class AccountMoveMakeNetting(models.TransientModel):
|
||||||
_name = "account.move.make.netting"
|
_name = "account.move.make.netting"
|
||||||
|
_description = 'Wizard to generate account moves for netting'
|
||||||
|
|
||||||
journal_id = fields.Many2one(
|
journal_id = fields.Many2one(
|
||||||
comodel_name="account.journal",
|
comodel_name="account.journal",
|
||||||
@ -28,7 +29,7 @@ class AccountMoveMakeNetting(models.TransientModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def default_get(self, fields):
|
def default_get(self, fields_list):
|
||||||
if len(self.env.context.get('active_ids', [])) < 2:
|
if len(self.env.context.get('active_ids', [])) < 2:
|
||||||
raise exceptions.ValidationError(
|
raise exceptions.ValidationError(
|
||||||
_("You should compensate at least 2 journal entries."))
|
_("You should compensate at least 2 journal entries."))
|
||||||
@ -51,7 +52,7 @@ class AccountMoveMakeNetting(models.TransientModel):
|
|||||||
raise exceptions.ValidationError(
|
raise exceptions.ValidationError(
|
||||||
_("All entries should have a partner and the partner must "
|
_("All entries should have a partner and the partner must "
|
||||||
"be the same for all."))
|
"be the same for all."))
|
||||||
res = super(AccountMoveMakeNetting, self).default_get(fields)
|
res = super(AccountMoveMakeNetting, self).default_get(fields_list)
|
||||||
res['move_line_ids'] = [(6, 0, move_lines.ids)]
|
res['move_line_ids'] = [(6, 0, move_lines.ids)]
|
||||||
balance = (sum(move_lines.mapped('debit')) -
|
balance = (sum(move_lines.mapped('debit')) -
|
||||||
sum(move_lines.mapped('credit')))
|
sum(move_lines.mapped('credit')))
|
||||||
@ -59,7 +60,6 @@ class AccountMoveMakeNetting(models.TransientModel):
|
|||||||
res['balance_type'] = 'pay' if balance < 0 else 'receive'
|
res['balance_type'] = 'pay' if balance < 0 else 'receive'
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@api.multi
|
|
||||||
def button_compensate(self):
|
def button_compensate(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
# Create account move
|
# Create account move
|
||||||
@ -103,8 +103,6 @@ class AccountMoveMakeNetting(models.TransientModel):
|
|||||||
move_line_vals = {
|
move_line_vals = {
|
||||||
field_map[i]: amount,
|
field_map[i]: amount,
|
||||||
'partner_id': self.move_line_ids[0].partner_id.id,
|
'partner_id': self.move_line_ids[0].partner_id.id,
|
||||||
'date': move.date,
|
|
||||||
'journal_id': move.journal_id.id,
|
|
||||||
'name': move.ref,
|
'name': move.ref,
|
||||||
'account_id': account_group['account_id'],
|
'account_id': account_group['account_id'],
|
||||||
}
|
}
|
||||||
|
@ -15,12 +15,10 @@
|
|||||||
<field name="model">account.move.make.netting</field>
|
<field name="model">account.move.make.netting</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form string="Compensate entries">
|
<form string="Compensate entries">
|
||||||
<label string="This operation will generate account entries that are counterpart of the receivable/payable accounts selected, and reconcile each other, letting this balance in the partner:"/>
|
<p>This operation will generate account entries that are counterpart of the receivable/payable accounts selected, and reconcile each other, letting this balance in the partner.</p>
|
||||||
<group>
|
<group>
|
||||||
<field name="balance"/>
|
<field name="balance"/>
|
||||||
<field name="balance_type"/>
|
<field name="balance_type"/>
|
||||||
</group>
|
|
||||||
<group string="Select the journal where storing the journal entries">
|
|
||||||
<field name="journal_id"/>
|
<field name="journal_id"/>
|
||||||
</group>
|
</group>
|
||||||
<footer>
|
<footer>
|
||||||
|
Loading…
Reference in New Issue
Block a user