[FIX] contract_invoice_merge_by_partner: Fix merge method

This commit is contained in:
Pedro M. Baeza
2016-07-22 01:37:24 +02:00
parent e488a87eba
commit a28a892926
4 changed files with 39 additions and 32 deletions

View File

@@ -6,28 +6,32 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 8.0\n" "Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-06-14 13:16+0000\n" "POT-Creation-Date: 2016-07-21 23:35+0000\n"
"PO-Revision-Date: 2016-06-14 15:19+0100\n" "PO-Revision-Date: 2016-07-21 23:35+0000\n"
"Last-Translator: Carlos Dauden <carlos.dauden@tecnativa.com>\n" "Last-Translator: <>\n"
"Language-Team: Tecnativa <info@tecnativa.com>\n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: \n"
"X-Generator: Poedit 1.5.4\n" "Plural-Forms: \n"
"Language: es_ES\n"
"X-Poedit-SourceCharset: UTF-8\n"
#. module: contract_invoice_merge_by_partner #. module: contract_invoice_merge_by_partner
#: model:ir.model,name:contract_invoice_merge_by_partner.model_account_analytic_account #: model:ir.model,name:contract_invoice_merge_by_partner.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Cuenta analítica" msgstr "Cuenta analítica"
#. module: contract_invoice_merge_by_partner
#: help:res.partner,contract_invoice_merge:0
msgid "If checked, all the recurring invoices generated by the contracts of this partner will be merged on each run."
msgstr "Si está marcado, todas las facturas recurrentes generadas por los contratos de esta empresa serán fusionados en cada generación."
#. module: contract_invoice_merge_by_partner #. module: contract_invoice_merge_by_partner
#: field:res.partner,contract_invoice_merge:0 #: field:res.partner,contract_invoice_merge:0
msgid "Contract invoice merge" msgid "Merge contracts invoices"
msgstr "Fusionar facturas de contratos" msgstr "Fusionar las facturas de los contratos"
#. module: contract_invoice_merge_by_partner #. module: contract_invoice_merge_by_partner
#: model:ir.model,name:contract_invoice_merge_by_partner.model_res_partner #: model:ir.model,name:contract_invoice_merge_by_partner.model_res_partner
msgid "Partner" msgid "Partner"
msgstr "Empresa" msgstr "Empresa"

View File

@@ -1,30 +1,29 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# © 2016 Carlos Dauden <carlos.dauden@tecnativa.com> # © 2016 Carlos Dauden <carlos.dauden@tecnativa.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import api, models from openerp import api, models
class PurchaseOrderLine(models.Model): class AccountAnalyticAccount(models.Model):
_inherit = 'account.analytic.account' _inherit = 'account.analytic.account'
@api.multi @api.multi
def _recurring_create_invoice(self, automatic=False): def _recurring_create_invoice(self, automatic=False):
invoice_obj = self.env['account.invoice'] invoice_ids = super(
invoices = invoice_obj.browse( AccountAnalyticAccount, self)._recurring_create_invoice(automatic)
super(PurchaseOrderLine, self)._recurring_create_invoice( invoices = self.env['account.invoice'].browse(invoice_ids)
automatic))
res = [] res = []
unlink_list = [] invoices2unlink = self.env['account.invoice']
for partner in invoices.mapped('partner_id'): for partner in invoices.mapped('partner_id'):
inv_to_merge = invoices.filtered( invoices2merge = invoices.filtered(
lambda x: x.partner_id.id == partner) lambda x: x.partner_id == partner)
if partner.contract_invoice_merge and len(inv_to_merge) > 1: if partner.contract_invoice_merge and len(invoices2merge) > 1:
invoices_merged = inv_to_merge.do_merge() result = invoices2merge.do_merge()
res.extend(invoices_merged) res += result.keys()
unlink_list.extend(inv_to_merge) invoices2unlink += invoices2merge
else: else:
res.extend(inv_to_merge) res += invoices2merge.ids
if unlink_list: invoices2unlink.unlink()
invoice_obj.browse(unlink_list).unlink()
return res return res

View File

@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# © 2016 Carlos Dauden <carlos.dauden@tecnativa.com> # © 2016 Carlos Dauden <carlos.dauden@tecnativa.com>
# © 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import fields, models from openerp import fields, models
@@ -8,4 +9,7 @@ from openerp import fields, models
class ResPartner(models.Model): class ResPartner(models.Model):
_inherit = 'res.partner' _inherit = 'res.partner'
contract_invoice_merge = fields.Boolean() contract_invoice_merge = fields.Boolean(
string="Merge contracts invoices",
help="If checked, all the recurring invoices generated by the "
"contracts of this partner will be merged on each run.")

View File

@@ -9,8 +9,8 @@ class TestContractInvoiceMergeByPartner(TransactionCase):
""" Use case : Prepare some data for current test case """ """ Use case : Prepare some data for current test case """
def setUp(self): def setUp(self):
super(TestContractInvoiceMergeByPartner, self).setUp() super(TestContractInvoiceMergeByPartner, self).setUp()
self.partner = self.env['res.partner'].create( self.partner = self.env['res.partner'].create({
{'customer': True, 'customer': True,
'name': "Test Customer", 'name': "Test Customer",
'contract_invoice_merge': True, 'contract_invoice_merge': True,
}) })