Skip to content

Commit 51a9146

Browse files
committed
[IMP] - move contract template recurrence info to line level
1 parent 892b72a commit 51a9146

File tree

2 files changed

+44
-7
lines changed

2 files changed

+44
-7
lines changed

contract/migrations/12.0.2.0.0/pre-migration.py

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,8 @@
88
_logger = logging.getLogger(__name__)
99

1010

11-
@openupgrade.migrate()
12-
def migrate(env, version):
13-
"""
14-
set recurring_next_date to false for finished contract
15-
"""
16-
_logger.info(">> Pre-Migration 12.0.2.0.0")
11+
def _set_finished_contract(cr):
1712
_logger.info("set recurring_next_date to false for finished contract")
18-
cr = env.cr
1913
openupgrade.logged_query(
2014
cr,
2115
"""
@@ -25,6 +19,8 @@ def migrate(env, version):
2519
""",
2620
)
2721

22+
23+
def _move_contract_recurrence_info_to_contract_line(cr):
2824
_logger.info("Move contract data to line level")
2925
openupgrade.logged_query(
3026
cr,
@@ -56,3 +52,43 @@ def migrate(env, version):
5652
contract.id=contract_line.analytic_account_id
5753
""",
5854
)
55+
56+
57+
def _move_contract_template_recurrence_info_to_contract_template_line(cr):
58+
_logger.info("Move contract template data to line level")
59+
openupgrade.logged_query(
60+
cr,
61+
"""
62+
ALTER TABLE account_analytic_contract_line
63+
ADD COLUMN IF NOT EXISTS recurring_rule_type VARCHAR(255),
64+
ADD COLUMN IF NOT EXISTS recurring_invoicing_type VARCHAR(255),
65+
ADD COLUMN IF NOT EXISTS recurring_interval INTEGER,
66+
""",
67+
)
68+
69+
openupgrade.logged_query(
70+
cr,
71+
"""
72+
UPDATE account_analytic_contract_line AS contract_template_line
73+
SET
74+
recurring_rule_type=contract_template.recurring_rule_type,
75+
recurring_invoicing_type=contract_template.recurring_invoicing_type,
76+
recurring_interval=contract_template.recurring_interval
77+
FROM
78+
account_analytic_contract AS contract_template
79+
WHERE
80+
contract_template.id=contract_template_line.contract_id
81+
""",
82+
)
83+
84+
85+
@openupgrade.migrate()
86+
def migrate(env, version):
87+
"""
88+
set recurring_next_date to false for finished contract
89+
"""
90+
_logger.info(">> Pre-Migration 12.0.2.0.0")
91+
cr = env.cr
92+
_set_finished_contract(cr)
93+
_move_contract_recurrence_info_to_contract_line(cr)
94+
_move_contract_template_recurrence_info_to_contract_template_line(cr)

contract/migrations/12.0.4.0.0/post-migration.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ def _copy_contract_line_table(cr):
111111
contract_line_fields.append(field)
112112
account_analytic_invoice_line_fields = contract_line_fields.copy()
113113
contract_line_fields.append('contract_id')
114+
account_analytic_invoice_line_fields.append('analytic_account_id')
114115
contract_line_fields.append('active')
115116
account_analytic_invoice_line_fields.append('true')
116117

0 commit comments

Comments
 (0)