Cancelación de CFDI's de complementos de pago
Posible diseño de solución
-
Descargar un local de odoo 15 actualizado
-
Crear un rama llamado feat_cancel_payment que dependa de feat_odoo_15
-
En el archivo account_payment.xml ubicado en la carpeta views descomentar el botón llamado replace_cfdi y reemplazar la clase del botón por btn-primary
-
Al inicio de la vista account_payment_cfdi_view_form antes del botón action_post Cambiar los atributos del botón llamado action_draft para que sea invisible cuando el estado de pago sea posted o cancel y cuando el campo cfdi_state sea done o cancel Algo así:
<button name="action_draft" position="attributes">
<attribute name="attrs">
{'invisible': ['&',('state', 'in', ('posted', 'cancel')),('cfdi_state', 'in', ('done', 'cancel'))]}
</attribute>
</button>
- En el archivo account_payment.py ubicar la función replace_cfdi y editarla de la siguiente manera
def replace_cfdi(self):
"""Cancel voucher cfdi by replacing with 1 MXN voucher"""
for record in self:
record.cancel_cfdi()
record.action_draft()
record.action_cancel()
En el archivo finkok.py ubicado en el módulo l10n_mx_params_pac se debe cambiar el mensaje de error 205 de la lista _cancel_errors
- Crear un rama llamado feat_message_cancel que dependa de feat_odoo_15
- El mensjae debe decir lo siguiente:
"205": "El UUID no existe o no ha sido procesado por el SAT"
" intentelo mas tarde",