[FIX] l10n_ar_edi_ux: enhance invoice sending logic and add readiness check in order to only send invoices that already has 10n_ar_afip_auth_code#863
Conversation
There was a problem hiding this comment.
Pull request overview
Este PR mejora la lógica de envío de facturas para la localización argentina, implementando un envío automático tras la validación solo cuando la factura ya tiene código de autorización de AFIP (l10n_ar_afip_auth_code).
- Agrega un método
_is_ready_to_be_sent()que verifica si la factura tiene autorización AFIP antes de permitir el envío - Implementa el envío automático de facturas electrónicas al finalizar
_post()para las facturas que cumplen con los requisitos - Actualiza la versión del módulo de 19.0.1.0.0 a 19.0.1.1.0 y añade dependencia de
account_ux
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| l10n_ar_edi_ux/manifest.py | Incrementa la versión a 19.0.1.1.0 y añade la dependencia account_ux necesaria para el método action_send_invoice_mail() |
| l10n_ar_edi_ux/models/account_move.py | Implementa la lógica de envío automático post-validación y el método _is_ready_to_be_sent() que valida la presencia del código de autorización AFIP |
| res = super()._is_ready_to_be_sent() | ||
| if self.journal_id.l10n_ar_afip_ws: | ||
| return self.l10n_ar_afip_result in ["A", "O"] and self.l10n_ar_afip_auth_code |
There was a problem hiding this comment.
El método _is_ready_to_be_sent debe incluir self.ensure_one() al inicio, ya que accede a campos individuales del registro (self.journal_id.l10n_ar_afip_ws, self.l10n_ar_afip_result, self.l10n_ar_afip_auth_code). Sin esto, el método podría fallar si se llama sobre un recordset con múltiples registros.
Además, la expresión self.l10n_ar_afip_auth_code en la línea 210 evalúa la veracidad de un campo de tipo Char. Si bien funciona, sería más explícito convertirlo a booleano o verificar que no esté vacío para mayor claridad en la intención del código.
| res = super()._is_ready_to_be_sent() | |
| if self.journal_id.l10n_ar_afip_ws: | |
| return self.l10n_ar_afip_result in ["A", "O"] and self.l10n_ar_afip_auth_code | |
| self.ensure_one() | |
| res = super()._is_ready_to_be_sent() | |
| if self.journal_id.l10n_ar_afip_ws: | |
| return self.l10n_ar_afip_result in ["A", "O"] and bool(self.l10n_ar_afip_auth_code) |
| invoices_ready_to_send = self.filtered( | ||
| lambda x: not x.is_move_sent and x._is_ready_to_be_sent() and x.state == "posted" | ||
| ) | ||
| invoices_ready_to_send.action_send_invoice_mail() |
There was a problem hiding this comment.
La nueva funcionalidad de envío automático de facturas tras su validación (líneas 154-157) no tiene cobertura de tests. Dado que el módulo ya cuenta con tests automatizados en tests/test_padron_afip.py, se recomienda agregar tests que verifiquen:
- Que las facturas con
l10n_ar_afip_auth_codese envían automáticamente tras_post() - Que las facturas sin código de autorización no se envían
- Que el método
_is_ready_to_be_sent()retorna correctamente según el estado de autorización AFIP
be7370f to
313162b
Compare
… check in order to only send invoices that already has 10n_ar_afip_auth_code
313162b to
d04238f
Compare

No description provided.