[IMP] - store last_date_invoiced on contract_line

Improve CRITERIA_ALLOWED_DICT

[IMP] - code improvement

[IMP] - Use last_date_invoiced to set marker in invoice description

[IMP] - add migration script to init last_day_invoiced and some other improvement

[FIX] - a contract line suspended should start a day after the suspension end
This commit is contained in:
sbejaoui
2018-11-29 16:57:51 +01:00
parent f217be4f19
commit aefa12ab9e
12 changed files with 1016 additions and 525 deletions

View File

@@ -1,10 +1,16 @@
# -*- coding: utf-8 -*-
# Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from odoo import SUPERUSER_ID, api
_logger = logging.getLogger(__name__)
def migrate(cr, version):
"""Copy recurrence info from contract to contract lines."""
"""Copy recurrence info from contract to contract lines and compute
last_date_invoiced"""
cr.execute(
"""UPDATE account_analytic_invoice_line AS contract_line
@@ -17,3 +23,10 @@ def migrate(cr, version):
FROM account_analytic_account AS contract
WHERE contract.id=contract_line.contract_id"""
)
_logger.info("order all contract line")
env = api.Environment(cr, SUPERUSER_ID, {})
contract_lines = env["account.analytic.invoice.line"].search(
[("recurring_next_date", "!=", False)]
)
contract_lines._init_last_date_invoiced()

View File

@@ -0,0 +1,24 @@
# Copyright 2018 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import logging
from odoo import SUPERUSER_ID, api
_logger = logging.getLogger(__name__)
def migrate(cr, version):
"""
set recurring_next_date to false for finished contract
"""
_logger.info("order all contract line")
with api.Environment(cr, SUPERUSER_ID, {}) as env:
contracts = env["account.analytic.account"].search([])
finished_contract = contracts.filtered(
lambda c: not c.create_invoice_visibility
)
cr.execute(
"UPDATE account_analytic_account set recurring_next_date=null where id in (%)"
% ','.join(finished_contract.ids)
)