diff --git a/purchase_auto_invoice_method/__init__.py b/purchase_auto_invoice_method/__init__.py new file mode 100644 index 0000000..a7f437c --- /dev/null +++ b/purchase_auto_invoice_method/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Purchase Auto Invoice Method module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import purchase diff --git a/purchase_auto_invoice_method/__openerp__.py b/purchase_auto_invoice_method/__openerp__.py new file mode 100644 index 0000000..7d440c3 --- /dev/null +++ b/purchase_auto_invoice_method/__openerp__.py @@ -0,0 +1,45 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Purchase auto invoice method module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Purchase Auto Invoice Method', + 'version': '0.1', + 'category': 'Purchase', + 'license': 'AGPL-3', + 'summary': "Set Invoice Method of PO to 'picking', unless if it's service-only", + 'description': """ +Purchase Auto Invoice Method +============================ + +Set the Invoice Method of the Purchase Order to 'picking' by default. On Purchase Order validation, if it only contains service lines, the Invoice Method is automatically switched to 'order'. + +Please contact Alexis de Lattre from Akretion for any help or question about this module. + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['purchase'], + 'data': [], + 'images': [], + 'installable': True, + 'active': False, +} diff --git a/purchase_auto_invoice_method/purchase.py b/purchase_auto_invoice_method/purchase.py new file mode 100644 index 0000000..2e69e84 --- /dev/null +++ b/purchase_auto_invoice_method/purchase.py @@ -0,0 +1,48 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Purchase Auto Invoice Method module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm + + +class purchase_order(orm.Model): + _inherit = 'purchase.order' + + _defaults = { + 'invoice_method': 'picking', + } + + def wkf_confirm_order(self, cr, uid, ids, context=None): + invoice_method_order_po_ids = [] + for po in self.browse(cr, uid, ids, context=context): + service_only = True + for line in po.order_line: + if line.product_id.type != 'service': + service_only = False + if service_only: + invoice_method_order_po_ids.append(po.id) + if invoice_method_order_po_ids: + self.write(cr, uid, invoice_method_order_po_ids, { + 'invoice_method': 'order', + }, context=context) + res = super(purchase_order, self).wkf_confirm_order( + cr, uid, ids, context=context) + return res