...
 
Commits (18)
<a name="8.0.3.6.4"></a>
## 8.0.3.6.4 (2023-10-27)
#### Bug Fixes
* **account.invoice:** se corrige la función action_consult_cancellation_status ([59776618](59776618))
<a name="8.0.3.6.3"></a>
## 8.0.3.6.3 (2023-10-11)
#### Bug Fixes
* **account.invoice:** se corrige migración para soporta el cambio del campo cfdi_fiscal_regime_id ([78393b60](78393b60))
<a name="8.0.3.6.2"></a>
## 8.0.3.6.2 (2023-09-12)
#### Bug Fixes
* **account.voucher:** se corrige plantilla PDF para los pagos ([02d3a69b](02d3a69b))
<a name="8.0.3.6.1"></a>
## 8.0.3.6.1 (2023-09-05)
#### Bug Fixes
* **account.invoice:** se corrige xml del CFDI 4.0 para la emisión de facturas ([18e5ad90](18e5ad90))
<a name="8.0.3.6.0"></a>
## 8.0.3.6.0 (2023-08-22)
#### Features
* **campo_fisca_regime:** ([f07ba154](f07ba154))
<a name="8.0.3.5.2"></a>
## 8.0.3.5.2 (2023-07-25)
......
......@@ -2,7 +2,7 @@
{
"name": "Factura Electronica CFDI",
"version": "8.0.3.5.2",
"version": "8.0.3.7.0",
"author": "OpenPyme",
"category": "Localization/Mexico",
"website": "http://www.openpyme.mx/",
......
......@@ -7,48 +7,50 @@ from openerp import SUPERUSER_ID
@tools.migrate(use_env=True, uid=SUPERUSER_ID)
def migrate(env, installed_version):
tools.logged_query(
env.cr,
"""
WITH account_regimen_code as (
SELECT
ai.id AS invoice_id,
fr.id AS fiscal_regime_id
FROM account_invoice as ai
LEFT JOIN account_fiscal_position as afp ON afp.id = ai.fiscal_position
LEFT JOIN cfdi_fiscal_regime AS fr ON afp.code = fr.code
WHERE afp.code in (
'601','603','605','606','607','608','609','610','611','612','614',
'615','616','620','621','622','623','624','628','629','630'
legacy_name = tools.get_legacy_name("cfdi_fiscal_regime_id")
if tools.column_exists(env.cr, "account_invoice", legacy_name):
tools.logged_query(
env.cr,
"""
WITH account_regimen_code as (
SELECT
ai.id AS invoice_id,
fr.id AS fiscal_regime_id
FROM account_invoice as ai
LEFT JOIN account_fiscal_position as afp ON afp.id = ai.fiscal_position
LEFT JOIN cfdi_fiscal_regime AS fr ON afp.code = fr.code
WHERE afp.code in (
'601','603','605','606','607','608','609','610','611','612','614',
'615','616','620','621','622','623','624','628','629','630'
)
)
)
UPDATE account_invoice AS ai
SET cfdi_fiscal_regime_id=fr.fiscal_regime_id
FROM account_regimen_code AS fr
WHERE ai.id=fr.invoice_id
""",
)
UPDATE account_invoice AS ai
SET cfdi_fiscal_regime_id=fr.fiscal_regime_id
FROM account_regimen_code AS fr
WHERE ai.id=fr.invoice_id
""",
)
tools.logged_query(
env.cr,
"""
WITH account_regimen_code as (
SELECT
ai.id AS invoice_id,
fr.id AS fiscal_regime_id
FROM account_invoice as ai
LEFT JOIN account_fiscal_position as afp ON afp.id = ai.fiscal_position
LEFT JOIN cfdi_fiscal_regime AS fr ON afp.code = fr.code
WHERE afp.code in (
'601','603','605','606','607','608','609','610','611','612','614',
'615','616','620','621','622','623','624','628','629','630'
tools.logged_query(
env.cr,
"""
WITH account_regimen_code as (
SELECT
ai.id AS invoice_id,
fr.id AS fiscal_regime_id
FROM account_invoice as ai
LEFT JOIN account_fiscal_position as afp ON afp.id = ai.fiscal_position
LEFT JOIN cfdi_fiscal_regime AS fr ON afp.code = fr.code
WHERE afp.code in (
'601','603','605','606','607','608','609','610','611','612','614',
'615','616','620','621','622','623','624','628','629','630'
)
)
)
UPDATE account_invoice AS ai
SET fiscal_position=Null
FROM account_regimen_code AS fr
WHERE ai.id=fr.invoice_id
""",
)
UPDATE account_invoice AS ai
SET fiscal_position=Null
FROM account_regimen_code AS fr
WHERE ai.id=fr.invoice_id
""",
)
# -*- coding: utf-8 -*-
from openupgradelib import openupgrade as tools
from openerp import SUPERUSER_ID
@tools.migrate(use_env=True, uid=SUPERUSER_ID)
def migrate(env, installed_version):
tools.drop_columns(env.cr, [("cfdi_fiscal_regime_id", "code")])
......@@ -17,12 +17,6 @@ class AccountInvoice(models.Model):
_name = "account.invoice"
_inherit = ["account.invoice", "base.cfdi"]
cfdi_fiscal_regime_id = fields.Many2one(
"cfdi.fiscal.regime",
string="Fiscal regime",
states={"draft": [("readonly", False)]},
)
@property
def formapago(self):
"""Return payment type for display on CFDI"""
......@@ -280,8 +274,6 @@ class AccountInvoice(models.Model):
for invoice in self.filtered(lambda i: i.type in ("out_invoice", "out_refund")):
partner = invoice.partner_id
if partner:
if partner.cfdi_fiscal_regime_id.id:
invoice.cfdi_fiscal_regime_id = partner.cfdi_fiscal_regime_id.id
if partner.cfdi_use.id:
invoice.cfdi_use = partner.cfdi_use.id
invoice.payment_method_id = partner.payment_method_id.id
......@@ -371,7 +363,7 @@ class AccountInvoice(models.Model):
for invoice in self:
try:
with self.env.cr.savepoint():
status_cancelacion = invoice.consult_cfdi_cancellation_status()
status_cancelacion = invoice.consult_cfdi_cancellation_status()[0]
if status_cancelacion is None:
invoice.message_post(
body=_("No status update found on SAT")
......@@ -408,7 +400,6 @@ class AccountInvoice(models.Model):
[
"cfdi_use",
"partner_id",
"cfdi_fiscal_regime_id",
"payment_type_ids",
"address_issued_id",
"journal_id",
......
No preview for this file type
......@@ -110,7 +110,7 @@
{% if line.cfdi_numero_identificacion %}NoIdentificacion="${ html_escape(line.cfdi_numero_identificacion) }"{% end %}
{% end %}
{% end %}
Cantidad="${ '{0:.6f}'.format(line.quantity) }"
Cantidad="${ '{0:g}'.format(line.quantity) }"
{% choose line.uos_id.name %}
{% when False %}${ validationerror(_('Please select a unit of measure for line: {l}').format(l=line.name)) }{% end %}
{% otherwise %}
......
......@@ -120,12 +120,6 @@
</div>
</xpath>
<field name="partner_id" position="after">
<field name="cfdi_fiscal_regime_id"
attrs="{
'readonly': [('cfdi_state','in', ['signed', 'cancel', 'done'])],
'invisible': [('is_cfdi_candidate', '=', False)]
}"
/>
<field name="cfdi_use"
attrs="{
'readonly': [('cfdi_state','in', ['signed', 'cancel', 'done'])],
......@@ -232,21 +226,5 @@
</field>
</record>
<record id="invoice_supplier_inherit_view_form" model="ir.ui.view">
<field name="name">invoice.supplier.inherit.view.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_supplier_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="cfdi_fiscal_regime_id"
widget="selection"
attrs="{
'readonly': [('state','not in', ['draft'])],
}"
/>
</field>
</field>
</record>
</data>
</openerp>