mirror of
https://github.com/bringout/oca-ocb-l10n_americas.git
synced 2026-04-26 18:31:58 +02:00
Initial commit: L10N_Americas packages
This commit is contained in:
commit
12b27ce151
714 changed files with 79328 additions and 0 deletions
|
|
@ -0,0 +1,73 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import api, SUPERUSER_ID
|
||||
|
||||
def update_withhold_type(env):
|
||||
# reclassifies withhold taxes into independent tax groups for sales and purchases
|
||||
env.cr.execute('''
|
||||
UPDATE account_tax
|
||||
SET tax_group_id=t.id FROM (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_vat_sale') AS t
|
||||
WHERE account_tax.id IN (SELECT id FROM account_tax WHERE tax_group_id IN (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_vat') AND type_tax_use='sale')
|
||||
''')
|
||||
env.cr.execute('''
|
||||
UPDATE account_tax
|
||||
SET tax_group_id=t.id FROM (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_vat_purchase') AS t
|
||||
WHERE account_tax.id IN (SELECT id FROM account_tax WHERE tax_group_id IN (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_vat') AND type_tax_use='purchase')
|
||||
''')
|
||||
env.cr.execute('''
|
||||
UPDATE account_tax
|
||||
SET tax_group_id=t.id FROM (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_income_sale') AS t
|
||||
WHERE account_tax.id IN (SELECT id FROM account_tax WHERE tax_group_id IN (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_income_tax') AND type_tax_use='sale')
|
||||
''')
|
||||
env.cr.execute('''
|
||||
UPDATE account_tax
|
||||
SET tax_group_id=t.id FROM (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_income_purchase') AS t
|
||||
WHERE account_tax.id IN (SELECT id FROM account_tax WHERE tax_group_id IN (SELECT id FROM account_tax_group WHERE l10n_ec_type='withhold_income_tax') AND type_tax_use='purchase')
|
||||
''')
|
||||
|
||||
def update_type_tax_use(env):
|
||||
# sets type_tax_use = none for withholding taxes
|
||||
env.cr.execute('''
|
||||
UPDATE account_tax
|
||||
SET type_tax_use = 'none'
|
||||
WHERE tax_group_id IN (SELECT id FROM account_tax_group WHERE l10n_ec_type IN ('withhold_income_purchase','withhold_vat_purchase','withhold_income_sale','withhold_vat_sale'))
|
||||
''')
|
||||
|
||||
def update_tax_repartition_line_vat_withhold(env):
|
||||
# For tax repartition lines in vat withhold taxes, replace factor_percent=12% with factor_percent=100%
|
||||
env.cr.execute('''
|
||||
--for invoice_tax_id
|
||||
UPDATE account_tax_repartition_line
|
||||
SET factor_percent = 100
|
||||
WHERE factor_percent = 12
|
||||
AND repartition_type = 'tax'
|
||||
AND invoice_tax_id in (
|
||||
SELECT id
|
||||
FROM account_tax
|
||||
WHERE country_id = (SELECT id FROM res_country WHERE code = 'EC' LIMIT 1) --Country is Ecuador)
|
||||
AND tax_group_id IN (
|
||||
SELECT id FROM account_tax_group WHERE l10n_ec_type IN ('withhold_vat_sale', 'withhold_vat_purchase')
|
||||
)
|
||||
)
|
||||
''')
|
||||
env.cr.execute('''
|
||||
--for refund_tax_id
|
||||
UPDATE account_tax_repartition_line
|
||||
SET factor_percent = 100
|
||||
WHERE factor_percent = 12
|
||||
AND repartition_type = 'tax'
|
||||
AND refund_tax_id in (
|
||||
SELECT id
|
||||
FROM account_tax
|
||||
WHERE country_id = (SELECT id FROM res_country WHERE code = 'EC' LIMIT 1) --Country is Ecuador)
|
||||
AND tax_group_id IN (
|
||||
SELECT id FROM account_tax_group WHERE l10n_ec_type IN ('withhold_vat_sale','withhold_vat_purchase')
|
||||
)
|
||||
)
|
||||
''')
|
||||
|
||||
def migrate(cr, version):
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
update_withhold_type(env)
|
||||
update_type_tax_use(env)
|
||||
update_tax_repartition_line_vat_withhold(env)
|
||||
Loading…
Add table
Add a link
Reference in a new issue