diff --git a/contract_payment_mode/README.rst b/contract_payment_mode/README.rst index 5d4ee46c0..09e27ba1f 100644 --- a/contract_payment_mode/README.rst +++ b/contract_payment_mode/README.rst @@ -34,6 +34,7 @@ Contributors ------------ * Ángel Moya +* Antonio Espinosa Maintainer diff --git a/contract_payment_mode/__init__.py b/contract_payment_mode/__init__.py index a0fdc10fe..753e6ceed 100644 --- a/contract_payment_mode/__init__.py +++ b/contract_payment_mode/__init__.py @@ -1,2 +1,6 @@ # -*- coding: utf-8 -*- +# © 2016 Antiun Ingenieria S.L. - Antonio Espinosa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from . import models +from .hooks import post_init_hook diff --git a/contract_payment_mode/__openerp__.py b/contract_payment_mode/__openerp__.py index 1eee7c8b6..f9c12929d 100644 --- a/contract_payment_mode/__openerp__.py +++ b/contract_payment_mode/__openerp__.py @@ -35,6 +35,7 @@ 'views/contract_view.xml', ], 'test': ['test/contract_payment_mode.yml'], + 'post_init_hook': 'post_init_hook', 'installable': True, 'auto_install': True, } diff --git a/contract_payment_mode/hooks.py b/contract_payment_mode/hooks.py new file mode 100644 index 000000000..01ee2da21 --- /dev/null +++ b/contract_payment_mode/hooks.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# © 2016 Antiun Ingenieria S.L. - Antonio Espinosa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import api, SUPERUSER_ID +import logging + +_logger = logging.getLogger(__name__) + + +def post_init_hook(cr, registry): + """Copy payment mode from partner to the new field at contract.""" + with api.Environment.manage(): + env = api.Environment(cr, SUPERUSER_ID, {}) + m_contract = env['account.analytic.account'] + contracts = m_contract.search([('type', '=', 'contract')]) + if contracts: + _logger.info('Setting payment mode: %d contracts' % + len(contracts)) + for contract in contracts: + payment_mode = contract.partner_id.customer_payment_mode + if payment_mode: + contract.payment_mode_id = payment_mode.id + _logger.info('Setting payment mode: Done')