[MIG][9.0] contract_recurring_plans module

This commit is contained in:
cubells
2017-04-27 23:04:44 +02:00
committed by Pedro M. Baeza
parent 891e4fd20a
commit ef113db033
24 changed files with 162 additions and 137 deletions

View File

@@ -6,9 +6,9 @@
Analytic plans for contract recurring invoices Analytic plans for contract recurring invoices
============================================== ==============================================
This module allows to include an analytic plan on each recurring invoice line, This module allows to include an analytic distribution on each recurring
so if you set it, this will be taken to be transferred to the invoice instead invoice line, so if you set it, this will be taken to be transferred to the
of the analytic account of the contract. invoice instead of the analytic account of the contract.
Usage Usage
===== =====
@@ -18,18 +18,15 @@ invoice recurring lines that you want.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/110/8.0 :target: https://runbot.odoo-community.org/runbot/110/9.0
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/ Bugs are tracked on `GitHub Issues <https://github.com/OCA/contract/issues>`_.
contract/issues>`_. In case of trouble, please check there if your issue has already been
In case of trouble, please check there if your issue has already been reported. reported. If you spotted it first, help us smash it by providing detailed and
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/ welcomed feedback.
contract/issues/new?body=module:%20
contract_recurring_plans%0Aversion:%20
8.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits Credits
======= =======
@@ -37,7 +34,8 @@ Credits
Contributors Contributors
------------ ------------
* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com> * Pedro M. Baeza <pedro.baeza@tecnativa.com>
* Vicent Cubells <vicent.cubells@tecnativa.com>
Icon Icon
---- ----
@@ -59,4 +57,4 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
To contribute to this module, please visit http://odoo-community.org. To contribute to this module, please visit https://odoo-community.org.

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza # Copyright 2015 Tecnativa - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import models from . import models

View File

@@ -1,17 +1,19 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza # Copyright 2015 Tecnativa - Pedro M. Baeza
# Copyright 2017 Tecnativa - Vicent Cubells
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
{ {
'name': 'Analytic plans on contracts recurring invoices', 'name': 'Analytic plans on contracts recurring invoices',
'version': '8.0.1.0.0', 'version': '9.0.1.0.0',
'category': 'Contract Management', 'category': 'Contract Management',
'author': 'Serv. Tecnol. Avanzados - Pedro M. Baeza, ' 'author': 'Tecnativa, '
'Odoo Community Association (OCA)', 'Odoo Community Association (OCA)',
'website': 'http://www.serviciosbaeza.com', 'website': 'http://www.tecnativa.com',
'license': 'AGPL-3',
'depends': [ 'depends': [
'account_analytic_plans', 'account_analytic_distribution',
'account_analytic_analysis', 'contract',
], ],
'data': [ 'data': [
'views/account_analytic_invoice_line_view.xml', 'views/account_analytic_invoice_line_view.xml',

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
msgid "" msgid ""
@@ -17,12 +17,12 @@ msgstr ""
"Language: ca\n" "Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Compte analític" msgstr "Compte analític"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "" msgstr ""

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 2016 # Rudolf Schnapka <rs@techno-flex.de>, 2016
@@ -18,12 +18,12 @@ msgstr ""
"Language: de\n" "Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Kostenstelle" msgstr "Kostenstelle"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Kostenumlage" msgstr "Kostenumlage"

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
msgid "" msgid ""
@@ -17,12 +17,12 @@ msgstr ""
"Language: el_GR\n" "Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Αναλυτικός Λογαριασμός" msgstr "Αναλυτικός Λογαριασμός"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "" msgstr ""

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
msgid "" msgid ""
@@ -17,12 +17,12 @@ msgstr ""
"Language: es\n" "Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Cuenta analítica" msgstr "Cuenta analítica"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Distribución analítica" msgstr "Distribución analítica"

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
msgid "" msgid ""
@@ -17,12 +17,12 @@ msgstr ""
"Language: es_MX\n" "Language: es_MX\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Cuenta analítica" msgstr "Cuenta analítica"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "" msgstr ""

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2016 # Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2016
@@ -18,12 +18,12 @@ msgstr ""
"Language: fi\n" "Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Analyyttinen tili" msgstr "Analyyttinen tili"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Analyyttinen jakelu" msgstr "Analyyttinen jakelu"

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2016 # Christophe CHAUVET <christophe.chauvet@gmail.com>, 2016
@@ -18,12 +18,12 @@ msgstr ""
"Language: fr\n" "Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Compte analytique" msgstr "Compte analytique"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Distribution analytique" msgstr "Distribution analytique"

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
# danimaribeiro <danimaribeiro@gmail.com>, 2016 # danimaribeiro <danimaribeiro@gmail.com>, 2016
@@ -18,12 +18,12 @@ msgstr ""
"Language: pt_BR\n" "Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Conta analítica" msgstr "Conta analítica"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Distribuição analítica" msgstr "Distribuição analítica"

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
msgid "" msgid ""
@@ -17,12 +17,12 @@ msgstr ""
"Language: sk_SK\n" "Language: sk_SK\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Analytický účet" msgstr "Analytický účet"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "" msgstr ""

View File

@@ -1,6 +1,6 @@
# Translation of Odoo Server. # Translation of Odoo Server.
# This file contains the translation of the following modules: # This file contains the translation of the following modules:
# * contract_recurring_plans # * contract_recurring_analytic_distribution
# #
# Translators: # Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015 # Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
@@ -18,12 +18,12 @@ msgstr ""
"Language: sl\n" "Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: model:ir.model,name:contract_recurring_plans.model_account_analytic_account #: model:ir.model,name:contract_recurring_analytic_distribution.model_account_analytic_account
msgid "Analytic Account" msgid "Analytic Account"
msgstr "Analitični konto" msgstr "Analitični konto"
#. module: contract_recurring_plans #. module: contract_recurring_analytic_distribution
#: field:account.analytic.invoice.line,analytics_id:0 #: field:account.analytic.invoice.line,analytics_id:0
msgid "Analytic Distribution" msgid "Analytic Distribution"
msgstr "Analitična distribucija" msgstr "Analitična distribucija"

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2015 Tecnativa - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import account_analytic_invoice_line

View File

@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza # Copyright 2015 Tecnativa - Pedro M. Baeza
# Copyright 2017 Tecnativa - Vicent Cubells
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp import models, fields, api from openerp import models, fields, api
@@ -12,15 +13,18 @@ class AccountAnalyticAccount(models.Model):
def _prepare_invoice_line(self, line, invoice_id): def _prepare_invoice_line(self, line, invoice_id):
res = super(AccountAnalyticAccount, self)._prepare_invoice_line( res = super(AccountAnalyticAccount, self)._prepare_invoice_line(
line, invoice_id) line, invoice_id)
if line.analytics_id: if line.analytic_distribution_id:
res.update({'account_analytic_id': False, res.update({
'analytics_id': line.analytics_id.id}) 'account_analytic_id': False,
'analytic_distribution_id': line.analytic_distribution_id.id,
})
return res return res
class AccountAnalyticInvoiceLine(models.Model): class AccountAnalyticInvoiceLine(models.Model):
_inherit = "account.analytic.invoice.line" _inherit = "account.analytic.invoice.line"
analytics_id = fields.Many2one( analytic_distribution_id = fields.Many2one(
comodel_name='account.analytic.plan.instance', comodel_name='account.analytic.distribution',
string='Analytic Distribution') string='Analytic Distribution', oldname='analytics_id',
)

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -2,4 +2,4 @@
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza # (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import account_analytic_invoice_line from . import test_contract_recurring_distribution

View File

@@ -0,0 +1,69 @@
# -*- coding: utf-8 -*-
# Copyright 2015 Tecnativa - Pedro M. Baeza
# Copyright 2017 Tecnativa - Vicent Cubells
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import openerp.tests.common as common
class TestContractRecurringDistribution(common.SavepointCase):
@classmethod
def setUpClass(cls):
super(TestContractRecurringDistribution, cls).setUpClass()
cls.partner = cls.env['res.partner'].create({'name': 'Test'})
cls.product = cls.env['product.product'].create({
'name': 'Test product',
})
cls.account1 = cls.env['account.analytic.account'].create({
'name': 'Test account #1',
})
cls.account2 = cls.env['account.analytic.account'].create({
'name': 'Test account #2',
})
cls.uom = cls.env.ref('product.product_uom_hour')
cls.contract = cls.env['account.analytic.account'].create({
'name': 'Test contract',
'partner_id': cls.partner.id,
'type': 'contract',
'recurring_invoices': 1,
'recurring_interval': 1,
'recurring_invoice_line_ids': [
(0, 0, {'quantity': 2.0,
'price_unit': 100.0,
'name': 'Test',
'product_id': cls.product.id,
'uom_id': cls.uom.id})],
})
cls.distribution = cls.env['account.analytic.distribution'].create({
'name': 'Test distribution',
'rule_ids': [
(0, 0, {
'sequence': 10,
'percent': 75.00,
'analytic_account_id': cls.account1.id,
}),
(0, 0, {
'sequence': 20,
'percent': 25.00,
'analytic_account_id': cls.account2.id,
}),
]
})
def test_invoice_without_distribution(self):
self.contract.recurring_create_invoice()
invoice = self.env['account.invoice'].search(
[('partner_id', '=', self.partner.id)])
self.assertEqual(
invoice.invoice_line_ids[0].account_analytic_id, self.contract)
def test_invoice_with_distribution(self):
self.contract.recurring_invoice_line_ids.analytic_distribution_id = (
self.distribution.id)
self.contract.recurring_create_invoice()
invoice = self.env['account.invoice'].search(
[('partner_id', '=', self.partner.id)])
self.assertFalse(invoice.invoice_line_ids[0].account_analytic_id)
self.assertEqual(
invoice.invoice_line_ids[0].analytic_distribution_id,
self.distribution)

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="account_analytic_account_form_form" model="ir.ui.view">
<field name="name">Contract form (with plans)</field>
<field name="model">account.analytic.account</field>
<field name="inherit_id" ref="contract.account_analytic_account_recurring_form_form"/>
<field name="arch" type="xml">
<field name="quantity" position="before">
<field name="analytic_distribution_id"/>
</field>
</field>
</record>
</odoo>

View File

@@ -1,5 +0,0 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from . import test_contract_recurring_plans

View File

@@ -1,47 +0,0 @@
# -*- coding: utf-8 -*-
# (c) 2015 Serv. Tecnol. Avanzados - Pedro M. Baeza
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
import openerp.tests.common as common
class TestContractRecurringPlans(common.TransactionCase):
def setUp(self):
super(TestContractRecurringPlans, self).setUp()
self.partner = self.env['res.partner'].create({'name': 'Test'})
self.product = self.env.ref('product.product_product_consultant')
self.uom = self.env.ref('product.product_uom_hour')
self.contract = self.env['account.analytic.account'].create({
'name': 'Test contract',
'partner_id': self.partner.id,
'type': 'contract',
'recurring_invoices': 1,
'recurring_interval': 1,
'recurring_invoice_line_ids': [
(0, 0, {'quantity': 2.0,
'price_unit': 100.0,
'name': 'Test',
'product_id': self.product.id,
'uom_id': self.uom.id})],
})
plan = self.env['account.analytic.plan'].create({'name': 'Test'})
self.analytics = self.env['account.analytic.plan.instance'].create(
{'plan_id': plan.id})
def test_invoice_without_plans(self):
self.contract.recurring_create_invoice()
invoice = self.env['account.invoice'].search(
[('partner_id', '=', self.partner.id)])
self.assertEqual(
invoice.invoice_line[0].account_analytic_id, self.contract)
def test_invoice_with_plans(self):
self.contract.recurring_invoice_line_ids.analytics_id = (
self.analytics.id)
self.contract.recurring_create_invoice()
invoice = self.env['account.invoice'].search(
[('partner_id', '=', self.partner.id)])
self.assertFalse(invoice.invoice_line[0].account_analytic_id)
self.assertEqual(
invoice.invoice_line[0].analytics_id, self.analytics)

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_analytic_account_form_form" model="ir.ui.view">
<field name="name">Contract form (with plans)</field>
<field name="model">account.analytic.account</field>
<field name="inherit_id" ref="account_analytic_analysis.account_analytic_account_form_form"/>
<field name="arch" type="xml">
<field name="quantity" position="before">
<field name="analytics_id"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -14,5 +14,6 @@
# To provide both the URL and a branch, use: # To provide both the URL and a branch, use:
# sale-workflow https://github.com/OCA/sale-workflow branchname # sale-workflow https://github.com/OCA/sale-workflow branchname
account-analytic
account-invoicing account-invoicing
bank-payment bank-payment