Cancelación de facturas CFDI 4.0
Closed
Cancelación de facturas CFDI 4.0
-
Crear la rama feat_cancel_move que dependa de la rama feat_odoo_15
-
En el archivo
l10n_mx_facturae/models/account_move.py
en el objeto account.move Crear un campo boleano llamado is_cancelable -
En la vista de formulario de la factura debe existir el campo is_cancelable, este deberá estar oculto y ubicado en el header donde se encuentran todos los botones de la factura
-
Crear un botón llamado Cancelar CFDI que mande a llamar una función l10n_mx_action_cancel
-
Agregar botón a la vista de formulario de la factura, este estará ubicado en el header de la vista donde están los demás botones de la vista
-
Este botón debe visualizarse cuando el campo state sea igual a "posted" y el campo cfdi_state sea igual a "done"
-
La función l10n_mx_action_cancel debe poner en true el campo boleano is_cancelable y ejecutar un ciclo validando que hay facturas con folio fiscal y que no estén en borrador o cancelado cómo aquí https://gitlab.openpyme.mx/l10n_mx/l10n_mx_facturae/-/blob/master/l10n_mx_facturae/models/account_invoice.py#L321
-
Dentro del for se debe mandar un mensaje al chatter "Solicitud de cancelación enviada" posteriormente mandar a consultar el estado de la factura
cancelacion = invoice.cancel_cfdi()[0]
- Posteriormente agregar las siguientes condiciones
if cancelacion:
# CFDI cancelled (cancelacion == True) must cancel invoice too
invoice.button_draft()
invoice.button_cancel()
elif cancelacion is None:
# CFDI set to approval (cancelacion == None) must set invoice
# to waiting too
invoice.write({"state": "waiting"})
elif cancelacion is False:
# CFDI cancel denied (cancelacion == False) must get back invoice
# to open state
self.undo_waiting_state()
@noe.izquierdo @agb80 Buenas tardes, Ing. Noé e Ing. Agustín
Sí me pueden apoyar con este conflicto
Al estar trabajando en el punto cancelacion = invoice.cancel_cfdi()[0] se produce el siguiente error
2024-04-23 23:58:46,769 6112 DEBUG ricardo odoo.addons.website.models.ir_http: _generate_routing_rules for website: 1 2024-04-23 23:58:48,203 6112 DEBUG ricardo odoo.api: call account.move(30,).l10n_mx_action_cancel() 2024-04-23 23:58:49,494 6112 INFO ricardo odoo.addons.l10n_mx_params_pac.models.params_pac: Finkok: 'bytes' object has no attribute 'encode' 2024-04-23 23:58:49,494 6112 WARNING ricardo odoo.http: ["Finkok: 'bytes' object has no attribute 'encode'"]
Al estar buscando cuál es el problema se encontró una función llamada cancel_cfdi_finkok Desconozco como solucionar la falla, debido al problema encode que marca
Este es mi merge !206 (merged)
Quedo al pendiente de sus comentarios