[FIX] contract. Optimize insertion of dates in invoice and lines.

This commit is contained in:
Ronald Portier
2018-12-22 11:09:50 +01:00
committed by Jesús Feliciano Valdez Cruz [Vauxoo]
parent 978c1176a2
commit c8aa5e3a68
28 changed files with 83 additions and 273 deletions

View File

@@ -58,19 +58,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -53,18 +53,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid "You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -58,19 +58,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Sie müssen zunächst einen Kunden für den Vertrag '%s' auswählen."
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,21 +59,11 @@ msgid "Type"
msgstr "Tipo"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "¡Seleccione un cliente para este contrato %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Debe revisar las fechas de inicio y de fin\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -83,3 +73,10 @@ msgstr "account.analytic.contract"
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr "⇒ Mostrar ventas recurrentes"
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Debe revisar las fechas de inicio y de fin\n"
#~ "%s"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -58,19 +58,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,21 +59,11 @@ msgid "Type"
msgstr "Type"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Vous devez d'abord sélectionner un Client pour le contrat %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Vous devez vérifier vos dates de début et de fin!\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -83,3 +73,10 @@ msgstr "account.analytic.contract"
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr "⇒ Voir les commandes récurrentes"
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Vous devez vérifier vos dates de début et de fin!\n"
#~ "%s"

View File

@@ -58,19 +58,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -60,21 +60,11 @@ msgid "Type"
msgstr "Tip"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Prvo morate odabrati partnera ua ugovor %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Morate revidirati početni i završni datum ugovora!!\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -84,3 +74,10 @@ msgstr "account.analytic.contract"
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr "⇒ Prikaži ponavljajuće ponude"
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Morate revidirati početni i završni datum ugovora!!\n"
#~ "%s"

View File

@@ -61,19 +61,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Prvo morate odabrati partnera za Ugovor %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -58,19 +58,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Bisogna prima selezionare un cliente per il contratto %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr " Er moet eerst een klant worden ingesteld op contract %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -60,21 +60,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Deve primeiro selecionar um Cliente para o Contrato %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Tem que rever as datas de início e fim!\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -84,3 +74,10 @@ msgstr "account.analytic.contract"
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr ""
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Tem que rever as datas de início e fim!\n"
#~ "%s"

View File

@@ -60,19 +60,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Primeiro você deve selecionar um Cliente para o contrato %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -60,19 +60,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -61,21 +61,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Вы должны проверить даты начала и окончания!\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -85,3 +75,10 @@ msgstr ""
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr ""
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Вы должны проверить даты начала и окончания!\n"
#~ "%s"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -58,21 +58,11 @@ msgid "Type"
msgstr "Türü"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Önce Sözleşme %s için bir Müşteri seçmelisiniz!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
"Başlangıç ve bitiş tarihlerini incelemelisiniz!\n"
"%s"
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"
@@ -82,3 +72,10 @@ msgstr "account.analytic.contract"
#: model:ir.ui.view,arch_db:contract_sale_generation.account_analytic_account_recurring_sale_form
msgid "⇒ Show recurring sales"
msgstr "⇒ Tekrarlayan Satışları Göster"
#~ msgid ""
#~ "You must review start and end dates!\n"
#~ "%s"
#~ msgstr ""
#~ "Başlangıç ve bitiş tarihlerini incelemelisiniz!\n"
#~ "%s"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr "Önce bir Müşteri Sözleşmesi seçmelisiniz %s!"
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -59,19 +59,11 @@ msgid "Type"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:54
#: code:addons/contract_sale_generation/models/account_analytic_account.py:46
#, python-format
msgid "You must first select a Customer for Contract %s!"
msgstr ""
#. module: contract_sale_generation
#: code:addons/contract_sale_generation/models/account_analytic_account.py:113
#, python-format
msgid ""
"You must review start and end dates!\n"
"%s"
msgstr ""
#. module: contract_sale_generation
#: model:ir.model,name:contract_sale_generation.model_account_analytic_contract
msgid "account.analytic.contract"

View File

@@ -6,7 +6,8 @@
# Copyright 2016-2017 LasLabs Inc.
# Copyright 2017 Pesol (<http://pesol.es>)
# Copyright 2017 Angel Moya <angel.moya@pesol.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Copyright 2018 Therp BV <https://therp.nl>.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, models, fields
from odoo.exceptions import ValidationError
@@ -29,16 +30,7 @@ class AccountAnalyticAccount(models.Model):
sale_line.product_id_change()
sale_line_vals = sale_line._convert_to_write(sale_line._cache)
# Insert markers
name = line.name
contract = line.analytic_account_id
if 'old_date' in self.env.context and 'next_date' in self.env.context:
lang_obj = self.env['res.lang']
lang = lang_obj.search(
[('code', '=', contract.partner_id.lang)])
date_format = lang.date_format or '%m/%d/%Y'
name = self._insert_markers(
line, self.env.context['old_date'],
self.env.context['next_date'], date_format)
name = self._insert_markers(line.name)
sale_line_vals.update({
'name': name,
'discount': line.discount,
@@ -106,26 +98,13 @@ class AccountAnalyticAccount(models.Model):
"""
sales = self.env['sale.order']
for contract in self:
ref_date = contract.recurring_next_date or fields.Date.today()
if (contract.date_start > ref_date or
contract.date_end and contract.date_end < ref_date):
raise ValidationError(
_("You must review start and end dates!\n%s") %
contract.name)
old_date = fields.Date.from_string(ref_date)
new_date = old_date + self.get_relative_delta(
contract.recurring_rule_type, contract.recurring_interval)
ctx = self.env.context.copy()
ctx.update({
'old_date': old_date,
'next_date': new_date,
# Force company for correct evaluate domain access rules
'force_company': contract.company_id.id,
})
if not contract.check_dates_valid():
continue
# Re-read contract with correct company
ctx = contract.get_invoice_context()
sales |= contract.with_context(ctx)._create_sale()
contract.write({
'recurring_next_date': new_date.strftime('%Y-%m-%d')
'recurring_next_date': fields.Date.to_string(ctx['next_date'])
})
return sales

View File

@@ -98,3 +98,11 @@ class TestContractSale(TransactionCase):
}
del self.template_vals['name']
self.assertDictEqual(res, self.template_vals)
def test_check_cron_ended_contract(self):
self.contract.recurring_next_date = '2016-02-29'
self.contract.recurring_rule_type = 'yearly'
self.contract.date_end = '2016-02-28'
sale_orders = self.contract.with_context(
cron=True).recurring_create_sale()
self.assertFalse(sale_orders)