acysos / odoo-addons

Addons modules for Odoo
GNU Affero General Public License v3.0
33 stars 68 forks source link

[8.0] l10n_es_aeat_sii - FechaRegContable es inferior a FechaExpedicionFacturaEmisor #20

Closed fribelles closed 6 years ago

fribelles commented 6 years ago

Campo relacionado: sii_registration_date.

Este error se experimenta principalmente sobre facturas de compra. Al confirmar una orden de compra (solicitud de presupuesto que genera una orden de compra), se genera también la factura borrador de proveedor, asignando al campo "create_date" de account_invoice la fecha actual.

Lo lógico es que transcurra un tiempo desde que se ha generado esta factura borrador hasta que el proveedor remita tanto la mercancía como la factura, y por tanto, la fecha de expedición (campo "fecha_expedicion" en account_invoice) siempre será superior a "sii_registration_date", que ya estaba creado.

¿No sería más conveniente almacenar en "sii_registration_date" la fecha en que se valida la factura, en lugar de tomarla de create_date?

Gracias, saludos!

acysos commented 6 years ago

Hola,

La fecha de sii_registration_date es campo opcional que esta vacío, es voluntario si se quiere indicar otra fecha diferente a la fecha de validación, sino utiliza la fecha en la que se valida la factura por defecto, pero es correcto que no se almacena. https://github.com/acysos/odoo-addons/blob/44c7280b425880e6a263381b13677f80889948f2/l10n_es_aeat_sii/models/account_invoice.py#L679

Supongo que sugieres que cuando se valide la factura y, por lo tanto, se envíe se guarde esa fecha en sii_registration_date. No es mala idea pero tendría que ser solo si se envía correctamente, porque si hay un error en la factura no empezaría la cuenta de los 4 días.

Saludos

fribelles commented 6 years ago

Hola, Voy a intentar explicar lo que hemos observado, para ver si se ajusta al funcionamiento real: Es cierto: "sii_registration_date" está vacío (incluso no puede ser editado), esto ocurre en la práctica totalidad de los casos (cuando se generan facturas de cliente (ventas) tanto manualmente como procedentes de órdenes de compra, así como cuando se generan facturas de proveedor (compras) de forma manual). Pero hemos constatado que en el caso de haber generado una solicitud de presupuesto desde el módulo compras y se confirma el pedido, es decir, pasa al estadio "pedidos de compra", odoo genera inmediatamente una factura borrador. Al validar esta factura borrador, que suele llegar tiempo después de que se haya generado la factura, creemos entender que el módulo aeat_sii está ejecutando de alguna manera el código como existe en el hook: cr.execute(""" UPDATE account_invoice SET sii_registration_date = create_date WHERE type in ('in_invoice', 'in_refund'); """) ¿Es posible que se esté ejecutando esta instrucción indirectamente?

Estos casos, muy aislados, los detectamos al obtener este error en el envío SII: "FechaRegContable es inferior a FechaExpedicionFacturaEmisor"

Gracias, saludos!