diff --git a/purchase_auto_invoice_method/__init__.py b/purchase_auto_invoice_method/__init__.py index a7f437c..b46d7f4 100644 --- a/purchase_auto_invoice_method/__init__.py +++ b/purchase_auto_invoice_method/__init__.py @@ -1,23 +1,3 @@ -# -*- 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 . -# -############################################################################## +# -*- coding: utf-8 -*- from . import purchase diff --git a/purchase_auto_invoice_method/__openerp__.py b/purchase_auto_invoice_method/__openerp__.py index 548b970..9c92f9c 100644 --- a/purchase_auto_invoice_method/__openerp__.py +++ b/purchase_auto_invoice_method/__openerp__.py @@ -1,8 +1,8 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # -# Purchase auto invoice method module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) +# Purchase auto invoice method module for Odoo +# Copyright (C) 2013-2015 Akretion (http://www.akretion.com) # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -31,13 +31,16 @@ 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'. +This module is usefull for the companies that have set the *Default invoicing control method* to *Based on incoming shipments* in the menu *Settings > Configuration > Purchase*. -Please contact Alexis de Lattre from Akretion for any help or question about this module. +When you confirm a purchase order, if the *Invoicing Control* is *Based on incoming shipments* and the PO only contains service lines, the *Invoicing Control* is automatically switched to *Based on generated draft invoice*. + +This module has been written by Alexis de Lattre from Akretion +. """, 'author': 'Akretion', 'website': 'http://www.akretion.com', - 'depends': ['purchase_partner_invoice_method'], - 'data': ['partner_data.xml'], + 'depends': ['purchase'], + 'data': [], 'installable': True, } diff --git a/purchase_auto_invoice_method/partner_data.xml b/purchase_auto_invoice_method/partner_data.xml deleted file mode 100644 index 57796d9..0000000 --- a/purchase_auto_invoice_method/partner_data.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - default supplier_invoice_method - - selection - - - - - - diff --git a/purchase_auto_invoice_method/purchase.py b/purchase_auto_invoice_method/purchase.py index 2e69e84..b054869 100644 --- a/purchase_auto_invoice_method/purchase.py +++ b/purchase_auto_invoice_method/purchase.py @@ -1,8 +1,8 @@ -# -*- encoding: utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # -# Purchase Auto Invoice Method module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) +# Purchase Auto Invoice Method module for Odoo +# Copyright (C) 2013-2015 Akretion (http://www.akretion.com) # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -20,29 +20,19 @@ # ############################################################################## -from openerp.osv import orm +from openerp import models, api -class purchase_order(orm.Model): +class PurchaseOrder(models.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 + @api.multi + def wkf_confirm_order(self): + for po in self: + if ( + po.invoice_method == 'picking' and all([ + line.product_id and + line.product_id.type == 'service' + for line in po.order_line])): + po.invoice_method = 'order' + return super(PurchaseOrder, self).wkf_confirm_order()