mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[REF] Contract: split from analytic account
This commit is contained in:
committed by
sbejaoui
parent
e167562a20
commit
da7826797c
145
contract/migrations/12.0.4.0.0/post-migration.py
Normal file
145
contract/migrations/12.0.4.0.0/post-migration.py
Normal file
@@ -0,0 +1,145 @@
|
||||
# Copyright 2019 ACSONE SA/NV
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
|
||||
from openupgradelib import openupgrade
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def migrate(cr, version):
|
||||
cr.execute(
|
||||
"""
|
||||
INSERT INTO contract_contract (
|
||||
id,
|
||||
name,
|
||||
partner_id,
|
||||
pricelist_id,
|
||||
contract_type,
|
||||
journal_id,
|
||||
company_id,
|
||||
analytic_account_id,
|
||||
active,
|
||||
code,
|
||||
group_id,
|
||||
contract_template_id,
|
||||
recurring_invoices,
|
||||
user_id,
|
||||
recurring_next_date,
|
||||
date_end,
|
||||
payment_term_id,
|
||||
fiscal_position_id,
|
||||
invoice_partner_id,
|
||||
message_main_attachment_id,
|
||||
create_uid,
|
||||
create_date,
|
||||
write_uid,
|
||||
write_date
|
||||
)
|
||||
SELECT id,
|
||||
name,
|
||||
partner_id,
|
||||
pricelist_id,
|
||||
contract_type,
|
||||
journal_id,
|
||||
company_id,
|
||||
id,
|
||||
active,
|
||||
code,
|
||||
group_id,
|
||||
contract_template_id,
|
||||
recurring_invoices,
|
||||
user_id,
|
||||
recurring_next_date,
|
||||
date_end,
|
||||
payment_term_id,
|
||||
fiscal_position_id,
|
||||
invoice_partner_id,
|
||||
message_main_attachment_id,
|
||||
create_uid,
|
||||
create_date,
|
||||
write_uid,
|
||||
write_date
|
||||
FROM account_analytic_account
|
||||
WHERE recurring_invoices = TRUE
|
||||
"""
|
||||
)
|
||||
cr.execute(
|
||||
"""
|
||||
INSERT INTO contract_line (
|
||||
id,
|
||||
product_id,
|
||||
name,
|
||||
quantity,
|
||||
uom_id,
|
||||
automatic_price,
|
||||
specific_price,
|
||||
discount,
|
||||
recurring_rule_type,
|
||||
recurring_invoicing_type,
|
||||
recurring_interval,
|
||||
sequence,
|
||||
contract_id,
|
||||
date_start,
|
||||
date_end,
|
||||
recurring_next_date,
|
||||
last_date_invoiced,
|
||||
termination_notice_date,
|
||||
successor_contract_line_id,
|
||||
predecessor_contract_line_id,
|
||||
manual_renew_needed,
|
||||
active,
|
||||
create_uid,
|
||||
create_date,
|
||||
write_uid,
|
||||
write_date
|
||||
)
|
||||
SELECT id,
|
||||
product_id,
|
||||
name,
|
||||
quantity,
|
||||
uom_id,
|
||||
automatic_price,
|
||||
specific_price,
|
||||
discount,
|
||||
recurring_rule_type,
|
||||
recurring_invoicing_type,
|
||||
recurring_interval,
|
||||
sequence,
|
||||
contract_id,
|
||||
date_start,
|
||||
date_end,
|
||||
recurring_next_date,
|
||||
last_date_invoiced,
|
||||
termination_notice_date,
|
||||
successor_contract_line_id,
|
||||
predecessor_contract_line_id,
|
||||
manual_renew_needed,
|
||||
active,
|
||||
create_uid,
|
||||
create_date,
|
||||
write_uid,
|
||||
write_date
|
||||
FROM account_analytic_invoice_line
|
||||
"""
|
||||
)
|
||||
openupgrade.rename_models(cr, [('account.analytic.invoice.line',
|
||||
'contract.line')])
|
||||
cr.execute(
|
||||
"""
|
||||
DROP TABLE account_analytic_invoice_line
|
||||
"""
|
||||
)
|
||||
cr.execute(
|
||||
"""
|
||||
UPDATE account_invoice_line
|
||||
SET contract_line_id = contract_line_id_tmp
|
||||
"""
|
||||
)
|
||||
cr.execute(
|
||||
"""
|
||||
ALTER TABLE account_invoice_line
|
||||
DROP COLUMN contract_line_id_tmp
|
||||
"""
|
||||
)
|
||||
72
contract/migrations/12.0.4.0.0/pre-migration.py
Normal file
72
contract/migrations/12.0.4.0.0/pre-migration.py
Normal file
@@ -0,0 +1,72 @@
|
||||
# Copyright 2019 ACSONE SA/NV
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
|
||||
from openupgradelib import openupgrade
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def migrate(cr, version):
|
||||
models_to_rename = [
|
||||
# Contract Line Wizard
|
||||
('account.analytic.invoice.line.wizard', 'contract.line.wizard'),
|
||||
# Abstract Contract
|
||||
('account.abstract.analytic.contract', 'contract.abstract.contract'),
|
||||
# Abstract Contract Line
|
||||
('account.abstract.analytic.contract.line',
|
||||
'contract.abstract.contract.line'),
|
||||
# Contract Line
|
||||
('account.analytic.invoice.line', 'contract.line'),
|
||||
# Contract Template
|
||||
('account.analytic.contract', 'contract.template'),
|
||||
# Contract Template Line
|
||||
('account.analytic.contract.line', 'contract.template.line'),
|
||||
]
|
||||
tables_to_rename = [
|
||||
# Contract Line Wizard
|
||||
('account_analytic_invoice_line_wizard', 'contract_line_wizard'),
|
||||
# Contract Template
|
||||
('account_analytic_contract', 'contract_template'),
|
||||
# Contract Template Line
|
||||
('account_analytic_contract_line', 'contract_template_line'),
|
||||
]
|
||||
xmlids_to_rename = [
|
||||
('contract.account_analytic_cron_for_invoice',
|
||||
'contract.contract_cron_for_invoice'),
|
||||
('contract.account_analytic_contract_manager',
|
||||
'contract.contract_template_manager'),
|
||||
('contract.account_analytic_contract_user',
|
||||
'contract.contract_template_user'),
|
||||
('contract.account_analytic_invoice_line_manager',
|
||||
'contract.contract_line_manager'),
|
||||
('contract.account_analytic_invoice_line_user',
|
||||
'contract.contract_line_user'),
|
||||
('contract.account_analytic_contract_line_manager',
|
||||
'contract.contract_template_line_manager'),
|
||||
('contract.account_analytic_contract_line_user',
|
||||
'contract.contract_template_line_user'),
|
||||
]
|
||||
openupgrade.rename_models(cr, models_to_rename)
|
||||
openupgrade.rename_tables(cr, tables_to_rename)
|
||||
openupgrade.rename_xmlids(cr, xmlids_to_rename)
|
||||
# A temporary column is needed to avoid breaking the foreign key constraint
|
||||
# The temporary column is dropped in the post-migration script
|
||||
cr.execute(
|
||||
"""
|
||||
ALTER TABLE account_invoice_line
|
||||
ADD COLUMN contract_line_id_tmp INTEGER
|
||||
"""
|
||||
)
|
||||
cr.execute(
|
||||
"""
|
||||
UPDATE account_invoice_line
|
||||
SET contract_line_id_tmp = contract_line_id
|
||||
"""
|
||||
)
|
||||
cr.execute(
|
||||
"""
|
||||
UPDATE account_invoice_line SET contract_line_id = NULL
|
||||
"""
|
||||
)
|
||||
Reference in New Issue
Block a user