Port purchase_auto_invoice_method to v8

This commit is contained in:
Alexis de Lattre
2015-10-07 17:21:59 +02:00
parent 99f3bc3778
commit 6d50815196
4 changed files with 26 additions and 76 deletions

View File

@@ -1,23 +1,3 @@
# -*- encoding: utf-8 -*- # -*- coding: 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 from . import purchase

View File

@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## ##############################################################################
# #
# Purchase auto invoice method module for OpenERP # Purchase auto invoice method module for Odoo
# Copyright (C) 2013 Akretion (http://www.akretion.com) # Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
@@ -31,13 +31,16 @@
Purchase Auto Invoice Method 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 <alexis.delattre@akretion.com> 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
<alexis.delattre@akretion.com>.
""", """,
'author': 'Akretion', 'author': 'Akretion',
'website': 'http://www.akretion.com', 'website': 'http://www.akretion.com',
'depends': ['purchase_partner_invoice_method'], 'depends': ['purchase'],
'data': ['partner_data.xml'], 'data': [],
'installable': True, 'installable': True,
} }

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 Akretion (http://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<!-- set supplier invoice method to "picking" by default -->
<record id="default_supplier_invoice_method" model="ir.property" forcecreate="True">
<field name="name">default supplier_invoice_method</field>
<field name="fields_id"
search="[('model','=','res.partner'), ('name','=','supplier_invoice_method')]"/>
<field name="type">selection</field>
<field name="value" eval="'picking'"/>
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</openerp>

View File

@@ -1,8 +1,8 @@
# -*- encoding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################## ##############################################################################
# #
# Purchase Auto Invoice Method module for OpenERP # Purchase Auto Invoice Method module for Odoo
# Copyright (C) 2013 Akretion (http://www.akretion.com) # Copyright (C) 2013-2015 Akretion (http://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com> # @author Alexis de Lattre <alexis.delattre@akretion.com>
# #
# This program is free software: you can redistribute it and/or modify # 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' _inherit = 'purchase.order'
_defaults = { @api.multi
'invoice_method': 'picking', def wkf_confirm_order(self):
} for po in self:
if (
def wkf_confirm_order(self, cr, uid, ids, context=None): po.invoice_method == 'picking' and all([
invoice_method_order_po_ids = [] line.product_id and
for po in self.browse(cr, uid, ids, context=context): line.product_id.type == 'service'
service_only = True for line in po.order_line])):
for line in po.order_line: po.invoice_method = 'order'
if line.product_id.type != 'service': return super(PurchaseOrder, self).wkf_confirm_order()
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