[IMP] l10n_latam_check_ux: Moved checks to date report from l10n_ar_a…#813
[IMP] l10n_latam_check_ux: Moved checks to date report from l10n_ar_a…#813feg-adhoc wants to merge 1 commit intoingadhoc:18.0from
Conversation
4c75672 to
52b7d4e
Compare
There was a problem hiding this comment.
Pull Request Overview
Este PR agrega un nuevo wizard y reporte para generar un listado de cheques pendientes a una fecha determinada en Odoo. La funcionalidad permite filtrar por diario y genera un PDF con dos secciones: cheques propios emitidos y cheques de terceros en mano.
- Implementa wizard
account.check.to_date.report.wizardcon consultas SQL complejas para determinar estado de cheques - Agrega template de reporte QWeb-PDF con formato tabular para visualización de cheques
- Incluye menú de acceso en reportes financieros con permisos para usuarios de facturación
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
l10n_latam_check_ux/wizards/checks_to_date_report.py |
Nuevo wizard transient con lógica de consulta SQL para filtrar cheques propios y de terceros según fecha y diario |
l10n_latam_check_ux/wizards/checks_to_date_view.xml |
Vista formulario del wizard con campos de fecha y diario, y menú en reportes financieros |
l10n_latam_check_ux/wizards/__init__.py |
Importa el nuevo módulo de wizard |
l10n_latam_check_ux/security/ir.model.access.csv |
Agrega permisos de acceso para el nuevo modelo wizard |
l10n_latam_check_ux/reports/report_checks_to_date.xml |
Template QWeb para renderizar PDF con tablas de cheques propios y de terceros |
l10n_latam_check_ux/__manifest__.py |
Registra archivos XML del wizard y reporte en el manifest |
Comments suppressed due to low confidence (2)
l10n_latam_check_ux/manifest.py:22
- Falta bump de versión en el manifest. Este PR agrega un nuevo modelo (
account.check.to_date.report.wizard), vistas XML, seguridad y reportes. La versión debería incrementarse (por ejemplo, de18.0.2.1.0a18.0.2.2.0).
"version": "18.0.2.2.0",
l10n_latam_check_ux/wizards/checks_to_date_report.py:30
- Variable force_domain is not used.
force_domain = self.journal_id and [("journal_id", "=", self.journal_id.id)] or []
|
|
||
| def action_confirm(self): | ||
| self.ensure_one() | ||
| force_domain = self.journal_id and [("journal_id", "=", self.journal_id.id)] or [] |
There was a problem hiding this comment.
La variable force_domain se define pero nunca se utiliza en el método. Debería eliminarse si no es necesaria.
| force_domain = self.journal_id and [("journal_id", "=", self.journal_id.id)] or [] |
| hacemos una query que: | ||
| * toma todos los pagos correspondientes a un cheque | ||
| * dentro de esos pagos filtramos por los que no tengan matched_debit_ids | ||
| * dentro de account.full.reconcile buscar todas las que tengas asocido un pago que corresponda a un cheque, una vez filtrado, |
There was a problem hiding this comment.
Error ortográfico: 'asocido' debería ser 'asociado'.
| * dentro de account.full.reconcile buscar todas las que tengas asocido un pago que corresponda a un cheque, una vez filtrado, | |
| * dentro de account.full.reconcile buscar todas las que tengas asociado un pago que corresponda a un cheque, una vez filtrado, |
| * toma todos los pagos correspondientes a un cheque | ||
| * dentro de esos pagos filtramos por los que no tengan matched_debit_ids | ||
| * dentro de account.full.reconcile buscar todas las que tengas asocido un pago que corresponda a un cheque, una vez filtrado, | ||
| * obtener la otra linea de ese full reconcile ya que esta corresponde a la conciliacion hecha en el date determinado |
There was a problem hiding this comment.
Faltan tildes: 'linea' debería ser 'línea', 'esta' debería ser 'ésta', y 'conciliacion' debería ser 'conciliación'.
| * obtener la otra linea de ese full reconcile ya que esta corresponde a la conciliacion hecha en el date determinado | |
| * obtener la otra línea de ese full reconcile ya que ésta corresponde a la conciliación hecha en el date determinado |
| * dentro de esos pagos filtramos por los que no tengan matched_debit_ids | ||
| * dentro de account.full.reconcile buscar todas las que tengas asocido un pago que corresponda a un cheque, una vez filtrado, | ||
| * obtener la otra linea de ese full reconcile ya que esta corresponde a la conciliacion hecha en el date determinado | ||
| * entonces lo que filtramos finalmente sera, los cheques aun no fueron debitados y sean de fecha anterior a la dada o los que tiene debito luego de la fecha dada |
There was a problem hiding this comment.
Faltan tildes: 'sera' debería ser 'será', 'aun' debería ser 'aún', y 'debito' debería ser 'débito'.
| * entonces lo que filtramos finalmente sera, los cheques aun no fueron debitados y sean de fecha anterior a la dada o los que tiene debito luego de la fecha dada | |
| * entonces lo que filtramos finalmente será, los cheques aún no fueron debitados y sean de fecha anterior a la dada o los que tiene débito luego de la fecha dada |
| """) | ||
|
|
||
| self.env.cr.execute("DROP TABLE IF EXISTS t2;") | ||
| # De la última operación de cada cheque filtramos los cheques cuya última operacioń no es manual (es decir, no |
There was a problem hiding this comment.
Error ortográfico: 'operacioń' debería ser 'operación' (la tilde está en la posición incorrecta).
| # De la última operación de cada cheque filtramos los cheques cuya última operacioń no es manual (es decir, no | |
| # De la última operación de cada cheque filtramos los cheques cuya última operación no es manual (es decir, no |
| <field name="report_name">l10n_ar_account_reports.checks_to_date</field> | ||
| <field name="report_file">l10n_ar_account_reports.checks_to_date</field> |
There was a problem hiding this comment.
Los campos report_name y report_file referencian el módulo incorrecto l10n_ar_account_reports. Deberían referenciar l10n_latam_check_ux.checks_to_date para ser consistentes con el módulo actual donde se define el template (línea 4 del mismo archivo).
| <field name="report_name">l10n_ar_account_reports.checks_to_date</field> | |
| <field name="report_file">l10n_ar_account_reports.checks_to_date</field> | |
| <field name="report_name">l10n_latam_check_ux.checks_to_date</field> | |
| <field name="report_file">l10n_latam_check_ux.checks_to_date</field> |
| <div> | ||
| <td colspan="1"> | ||
| <strong> | ||
| <span>Total</span> | ||
| </strong> | ||
| </td> | ||
| <td class="text-end" colspan="6"> | ||
| <span t-esc="total_issue" style="font-size: 15px" t-options='{"widget": "monetary", "display_currency": tcheck.currency_id}'/> | ||
| </td> | ||
| </div> |
There was a problem hiding this comment.
Estructura HTML inválida: los elementos <td> están envueltos en un <div> dentro de una tabla. Debería ser una fila <tr> con celdas <td>, no un <div>. Cambiar <div> por <tr> en las líneas 47 y 56.
| <div> | ||
| <td> | ||
| <strong> | ||
| <span>Total</span> | ||
| </strong> | ||
| </td> | ||
| <td class="text-end" colspan="6"> | ||
| <span t-esc="total" style="font-size: 15px" t-options='{"widget": "monetary", "display_currency": tcheck.currency_id}'/> | ||
| </td> | ||
| </div> |
There was a problem hiding this comment.
Estructura HTML inválida: los elementos <td> están envueltos en un <div> dentro de una tabla. Debería ser una fila <tr> con celdas <td>, no un <div>. Cambiar <div> por <tr> en las líneas 93 y 102.
| Diario: <span t-esc="docs.env['account.journal'].browse(docs.journal_id.id).name"/> | ||
| </t> | ||
| <div class="page"> | ||
| <t t-if="docs._get_checks_handed(docs.journal_id.id, docs.to_date)"> |
There was a problem hiding this comment.
La llamada docs._get_checks_handed(docs.journal_id.id, docs.to_date) se ejecuta dos veces: en la condición (línea 13) y en el t-foreach (línea 28). Esto duplica la ejecución de consultas SQL costosas. Recomiendo usar t-set para almacenar el resultado y reutilizarlo.
| </table> | ||
| <br/> | ||
| </t> | ||
| <t t-if="docs._get_checks_on_hand(docs.journal_id.id, docs.to_date)"> |
There was a problem hiding this comment.
La llamada docs._get_checks_on_hand(docs.journal_id.id, docs.to_date) se ejecuta dos veces: en la condición (línea 60) y en el t-foreach (línea 74). Esto duplica la ejecución de consultas SQL costosas. Recomiendo usar t-set para almacenar el resultado y reutilizarlo.

…ccount_reports