Add module purchase_auto_invoice_method.

This commit is contained in:
Alexis de Lattre
2013-12-16 18:50:27 +01:00
parent 673afbac0f
commit 24abaec406
3 changed files with 116 additions and 0 deletions

View File

@@ -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 <alexis.delattre@akretion.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import purchase

View File

@@ -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 <alexis.delattre@akretion.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'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 <alexis.delattre@akretion.com> for any help or question about this module.
""",
'author': 'Akretion',
'website': 'http://www.akretion.com',
'depends': ['purchase'],
'data': [],
'images': [],
'installable': True,
'active': False,
}

View File

@@ -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 <alexis.delattre@akretion.com>
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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