Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

17.0 h 85987 pam #1

Closed
wants to merge 22 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d8b95d5
[IMP] OCA openupgrade_framework uses
nicomacr Sep 6, 2024
7d996e8
[ADD] l10n_uy_edi: migration scripts
zaoral Aug 21, 2024
74c870a
[REF]
jjscarafia Aug 21, 2024
f98e474
[REF] l10n_uy, l10n_uy: cambios en el pre-migration.py de l10n_uy y e…
pablohmontenegro Sep 3, 2024
9634c4b
Agrego columnas de infor adicional de los partners y productos para l…
mem-adhoc Sep 17, 2024
5c50456
Error en querys de addendas
mem-adhoc Sep 17, 2024
d52248e
Limpio los comentarios y los TODO que ya se realizaron
mem-adhoc Sep 17, 2024
17d0723
Test y cambios en las tablas para generar y vincular los attachment
mem-adhoc Sep 17, 2024
c9fff99
Testeo de querys adenda y limpieza de codigo
mem-adhoc Sep 17, 2024
a7f5dc9
Creamos los registros de las adendas desde los partners y productos, …
mem-adhoc Sep 17, 2024
0994ec4
Terminamos de corregir los seteos de impuestos
mem-adhoc Sep 18, 2024
d390f45
Cambiamos nombre de carpeta para que lo tome el request que tenemos e…
mem-adhoc Sep 24, 2024
0c2b62b
Rollback del cambio de version en la carpeta de l10n_uy_edi mas cambi…
mem-adhoc Sep 25, 2024
5a910c9
Corregimos la query
mem-adhoc Oct 21, 2024
4d276e8
Hacemos un check para evitar el piedrazo
mem-adhoc Oct 25, 2024
899fd88
[FIX] l10n_uy_edi: missing rename fields
zaoral Nov 22, 2024
5138d4c
[FIX] l10n_uy_edi: rename of chart of account
zaoral Nov 22, 2024
26a068f
[ADD] l10n_uy_edi: second version end script
zaoral Nov 28, 2024
0d0d165
Merge pull request #63 from ingadhoc/17.0-t-41724-kz
mem-adhoc Dec 3, 2024
f3fd78e
[FIX] Change "env" for "cr" due odoo restriction on 18.0
nicomacr Nov 27, 2024
44b2c76
[FIX] account_payment_pro_receiptbook: Update receiptbook_id in accou…
rov-adhoc Jan 3, 2025
f47129d
[FIX] l10n_uy: odoo-upgrade fix l10n_uy_edi
pablohmontenegro Jan 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions account_payment_pro_receiptbook/17.0.0.0/post-migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@ def migrate_payment_grup_data(env):
"""
openupgrade.logged_query(env.cr, query)

query = """
update account_move am set
receiptbook_id = ap.receiptbook_id
from account_payment as ap
where
am.payment_id = ap.id and ap.receiptbook_id is not null;
"""

openupgrade.logged_query(env.cr, query)

# popular to_pay_move_lines (m2m field, en post)
query = """
insert into account_move_line_payment_to_pay_rel (to_pay_line_id, payment_id)
Expand Down
2 changes: 1 addition & 1 deletion base/16.0.0.0/pre-0-disable-check-company.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ def _check_company(self, fnames=None):
BaseModel._check_company = _check_company


def migrate(env, version):
def migrate(cr, version):
pass
2 changes: 1 addition & 1 deletion base/16.0.0.0/pre-0-disable-check-views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ def _check_xml(self):
View._check_xml = _check_xml


def migrate(env, version):
def migrate(cr, version):
pass
2 changes: 1 addition & 1 deletion base/17.0.0.0/pre-0-disable-check-company.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ def _check_company(self, fnames=None):
BaseModel._check_company = _check_company


def migrate(env, version):
def migrate(cr, version):
pass
2 changes: 1 addition & 1 deletion base/17.0.0.0/pre-0-disable-check-views.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ def _check_xml(self):
View._check_xml = _check_xml


def migrate(env, version):
def migrate(cr, version):
pass
25 changes: 25 additions & 0 deletions base/17.0.0.0/pre-0-model-checks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from odoo import api, models

from odoo.addons.base.models.ir_model import (
IrModelSelection,
)


def _process_ondelete(self):
"""Don't break on missing models when deleting their selection fields"""
to_process = self.browse([])
for selection in self:
try:
self.env[selection.field_id.model] # pylint: disable=pointless-statement
to_process += selection
except KeyError:
continue
return IrModelSelection._process_ondelete._original_method(to_process)


_process_ondelete._original_method = IrModelSelection._process_ondelete
IrModelSelection._process_ondelete = _process_ondelete


def migrate(cr, version):
pass
21 changes: 21 additions & 0 deletions base/18.0.0.0/pre-0-disable-check-company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from odoo.models import BaseModel
import logging
_logger = logging.getLogger(__name__)


_original_check_company = BaseModel._check_company


def _check_company(self, fnames=None):
""" Patch chec_check_company to avoid any error when run scripts, we enable later """
try:
_original_check_company
except Exception as e:
_logger.warning('incompatible companies. This is what we get:\n%s', e)


BaseModel._check_company = _check_company


def migrate(cr, version):
pass
21 changes: 21 additions & 0 deletions base/18.0.0.0/pre-0-disable-check-views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from odoo.addons.base.models.ir_ui_view import View
import logging
_logger = logging.getLogger(__name__)


_original_check_xml = View._check_xml


def _check_xml(self):
""" Patch check_xml to avoid any error when loading views, we check them later """
try:
_original_check_xml
except Exception as e:
_logger.warning('Invalid view definition. This is what we get:\n%s', e)


View._check_xml = _check_xml


def migrate(cr, version):
pass
25 changes: 25 additions & 0 deletions base/18.0.0.0/pre-0-model-checks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from odoo import api, models

from odoo.addons.base.models.ir_model import (
IrModelSelection,
)


def _process_ondelete(self):
"""Don't break on missing models when deleting their selection fields"""
to_process = self.browse([])
for selection in self:
try:
self.env[selection.field_id.model] # pylint: disable=pointless-statement
to_process += selection
except KeyError:
continue
return IrModelSelection._process_ondelete._original_method(to_process)


_process_ondelete._original_method = IrModelSelection._process_ondelete
IrModelSelection._process_ondelete = _process_ondelete


def migrate(cr, version):
pass
22 changes: 22 additions & 0 deletions l10n_uy/17.0.0.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from openupgradelib import openupgrade
import logging
_logger = logging.getLogger(__name__)


@openupgrade.migrate()
def migrate(env, version):
_logger.info('Running post-migrate script for l10n_uy')
# Popular nueva tabla con datos en el account move

# Cambio el plan de cuentas en 16 era uy_account en el modulo l10n_uy_account. Ahora en 17 el plan de cuentas esta
# en l10n_uy y se llama 'uy'. Tenemos que actualizar este dato en la compañia porque si no cuando entramos al menu
# de Ajustes recibimos este traceback https://gist.github.com/zaoral/461d737b35601c74d05ca3054d2f6e9f . Decidimos
# pasarlo a vacio porque si le ponemeos "uy" como hay muchas diferencias entre los xml usados en una version y
# otra puede traernos problemas en el futuro de duplicacion de registros que no queremos porque los xml son
# distintos
openupgrade.logged_query(env.cr, """
UPDATE res_company
SET
chart_template = Null
WHERE chart_template = 'uy_account'
""")
17 changes: 17 additions & 0 deletions l10n_uy/17.0.0.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from openupgradelib import openupgrade
import logging
_logger = logging.getLogger(__name__)


@openupgrade.migrate()
def migrate(env, version):
_logger.info('Running pre-migrate script for l10n_uy')
# TODO hacer los rename
_xmlid_renames = [
('l10n_uy.tax_group_vat_22', 'l10n_uy.tax_group_iva_22'),
('l10n_uy.tax_group_vat_10', 'l10n_uy.tax_group_iva_10'),
('l10n_uy.tax_group_vat_exempt', 'l10n_uy.tax_group_exenton'),
('l10n_uy.adenda_exoneracion_impuesto_renta', 'l10n_uy_edi_ux.adenda_exoneracion_impuesto_renta'),
]

openupgrade.rename_xmlids(env.cr, _xmlid_renames)
154 changes: 154 additions & 0 deletions l10n_uy_edi/17.0.0.0/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
from openupgradelib import openupgrade
import logging
_logger = logging.getLogger(__name__)


@openupgrade.migrate()
def migrate(env, version):
_logger.info('Running post-migrate script for l10n_uy_edi')
# Popular nueva tabla con datos en el account move
openupgrade.logged_query(env.cr, """
INSERT INTO l10n_uy_edi_document (move_id, state, uuid, message, request_datetime)
SELECT
move.id as move_id,
move.l10n_uy_cfe_state_bu as state,
move.l10n_uy_cfe_uuid_bu as uuid,
move.l10n_uy_ucfe_msg_bu as message,
TO_TIMESTAMP(TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') as request_datetime
FROM account_move move
JOIN account_journal journal ON move.journal_id = journal.id
WHERE journal.l10n_uy_edi_type = 'electronic' AND move.l10n_uy_cfe_state_bu NOTNULL
""")

openupgrade.logged_query(env.cr, """
UPDATE ir_attachment SET
res_id = subc.edi_id,
res_model = 'l10n_uy_edi.document',
res_field = 'attachment_file'
FROM (SELECT edi_doc.id AS edi_id, edi_doc.move_id from l10n_uy_edi_document edi_doc JOIN account_move ON account_move.id = edi_doc.move_id) as subc
WHERE subc.move_id = res_id AND name like '%.xml';
""")

for rec in env['l10n_uy_edi.document'].search([]):
datas = env['ir.attachment'].search([('res_id', '=', rec.id), ('res_model', '=', 'l10n_uy_edi.document')]).datas
if datas:
rec.attachment_file = datas

# Agregar relacion entre tabla edi document y move. campo 'l10n_uy_edi_document_id'
openupgrade.logged_query(env.cr, """
UPDATE account_move move
SET
l10n_uy_edi_document_id = edi.id
FROM l10n_uy_edi_document AS edi
WHERE edi.move_id = move.id
""")

openupgrade.logged_query(env.cr, """
UPDATE account_journal
SET
l10n_uy_edi_type = 'manual'
WHERE l10n_uy_edi_type = 'preprinted'
""")

# Actualizamos los select de los estados del cfe
openupgrade.logged_query(env.cr, """
UPDATE account_move
SET
l10n_uy_edi_cfe_state = 'error'
WHERE l10n_uy_cfe_state_bu IN ('xml_error', 'connection_error', 'ucfe_error');
""")

openupgrade.logged_query(env.cr, """
UPDATE account_move
SET
l10n_uy_edi_cfe_state = Null
WHERE l10n_uy_cfe_state_bu IN ('not_apply', 'draft_cfe');
""")

# Cambios en las addendas
openupgrade.logged_query(env.cr, """
UPDATE l10n_uy_edi_addenda
SET
type = 'issuer'
WHERE type = 'emisor'
""")

openupgrade.logged_query(env.cr, """
UPDATE l10n_uy_edi_addenda
SET
type = 'receiver'
WHERE type = 'receptor'
""")

openupgrade.logged_query(env.cr, """
UPDATE l10n_uy_edi_addenda
SET
type = 'cfe_doc'
WHERE type = 'comprobante'
""")

openupgrade.logged_query(env.cr, """
UPDATE l10n_uy_edi_addenda
SET
type = 'addenda'
WHERE type = 'adenda'
""")

#TODO opcional: vincular las adendas con las facturas
openupgrade.logged_query(env.cr, """
INSERT INTO l10n_uy_edi_addenda (name, type, content, company_id)
SELECT
move.l10n_uy_additional_info_bu AS name,
'cfe_doc' AS type,
move.l10n_uy_additional_info_bu AS content,
move.company_id AS company_id
FROM account_move move
WHERE move.l10n_uy_additional_info_bu NOTNULL
""")

openupgrade.logged_query(env.cr, """
INSERT INTO l10n_uy_edi_addenda (name, type, content)
SELECT
product.l10n_uy_additional_info_pro_bu AS name,
'item' AS type,
product.l10n_uy_additional_info_pro_bu AS content
-- product.product_tmpl_id.company_id AS company_id
FROM product_product product
WHERE product.l10n_uy_additional_info_pro_bu NOTNULL
""")

openupgrade.logged_query(env.cr, """
INSERT INTO l10n_uy_edi_addenda (name, type, content, company_id)
SELECT
partner.l10n_uy_additional_info_part_bu AS name,
'receiver' AS type,
partner.l10n_uy_additional_info_part_bu AS content,
partner.company_id AS company_id
FROM res_partner partner
WHERE partner.l10n_uy_additional_info_part_bu NOTNULL
""")

env['l10n_uy_edi.addenda'].search([('content', 'like', '{%}')]).is_legend = True

#Impuestos
query= f"""
SELECT tax.id
FROM account_tax_group AS tax_group
INNER JOIN account_tax AS tax
ON tax_group.id = tax.tax_group_id
WHERE tax_group.l10n_uy_vat_code_bu NOTNULL
"""
env.cr.execute(query)
tax_ids = [tax.get('id') for tax in env.cr.dictfetchall()]
env['account.tax'].browse(tax_ids).write({'l10n_uy_tax_category': 'vat'})

# Seteamos los ambientes
env['res.company'].search([('l10n_uy_edi_ucfe_env', '=', False)]).l10n_uy_edi_ucfe_env = 'demo'


# Los re-creamos
cron_ucfe_notif = env.ref('l10n_uy_edi.ir_cron_get_ucfe_notif', raise_if_not_found=False)
cron_vendor_bills_received = env.ref('l10n_uy_edi.ir_cron_get_vendor_bills_received', raise_if_not_found=False)

cron_ucfe_notif.unlink() if cron_ucfe_notif else False
cron_vendor_bills_received.unlink() if cron_vendor_bills_received else False
Loading
Loading