diff --git a/account_fiscal_position_payable_receivable/__init__.py b/account_fiscal_position_payable_receivable/__init__.py new file mode 100644 index 0000000..235b7d4 --- /dev/null +++ b/account_fiscal_position_payable_receivable/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import account_fiscal_position diff --git a/account_fiscal_position_payable_receivable/__manifest__.py b/account_fiscal_position_payable_receivable/__manifest__.py new file mode 100644 index 0000000..b69daf9 --- /dev/null +++ b/account_fiscal_position_payable_receivable/__manifest__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# © 2016-2017 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Account Fiscal Position Payable Receivable', + 'version': '10.0.1.0.0', + 'category': 'Accounting & Finance', + 'license': 'AGPL-3', + 'summary': 'Configure payable/receivable accounts on fiscal positions', + 'description': """ +Account Fiscal Position Payable Receivable +========================================== + +This module allows to configure a special *Partner Receivable Account* and a special *Partner Payable Account* on fiscal positions. This is used in the onchange of the fiscal position of partners. + +This module has been written by Alexis de Lattre from Akretion . + """, + 'author': "Akretion", + 'website': 'http://www.akretion.com', + 'depends': ['account'], + 'data': [ + 'account_fiscal_position_view.xml', + ], + 'installable': True, +} diff --git a/account_fiscal_position_payable_receivable/account_fiscal_position.py b/account_fiscal_position_payable_receivable/account_fiscal_position.py new file mode 100644 index 0000000..7d1b915 --- /dev/null +++ b/account_fiscal_position_payable_receivable/account_fiscal_position.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# © 2016-2017 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields, api + + +class AccountFiscalPosition(models.Model): + _inherit = 'account.fiscal.position' + + receivable_account_id = fields.Many2one( + 'account.account', string='Partner Receivable Account', + company_dependent=True, domain=[('internal_type', '=', 'receivable')]) + payable_account_id = fields.Many2one( + 'account.account', string='Partner Payable Account', + company_dependent=True, domain=[('internal_type', '=', 'payable')]) + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + @api.onchange('property_account_position_id') + def fiscal_position_receivable_payable_change(self): + fp = self.property_account_position_id + ipo = self.env['ir.property'] + if fp.receivable_account_id: + self.property_account_receivable_id = fp.receivable_account_id + else: + self.property_account_receivable_id = ipo.get( + 'property_account_receivable_id', 'res.partner') + if fp.payable_account_id: + self.property_account_payable_id = fp.payable_account_id + else: + self.property_account_payable_id = ipo.get( + 'property_account_payable_id', 'res.partner') diff --git a/account_fiscal_position_payable_receivable/account_fiscal_position_view.xml b/account_fiscal_position_payable_receivable/account_fiscal_position_view.xml new file mode 100644 index 0000000..45321f1 --- /dev/null +++ b/account_fiscal_position_payable_receivable/account_fiscal_position_view.xml @@ -0,0 +1,23 @@ + + + + + + + + receivable_payable.fiscal_position_form + account.fiscal.position + + + + + + + + + + +