Skip to content

[ADD] l10n_ar_payment_bundle: add Argentina demo data#1034

Open
cav-adhoc wants to merge 1 commit intoingadhoc:19.0from
adhoc-dev:19.0-t-66634-cav
Open

[ADD] l10n_ar_payment_bundle: add Argentina demo data#1034
cav-adhoc wants to merge 1 commit intoingadhoc:19.0from
adhoc-dev:19.0-t-66634-cav

Conversation

@cav-adhoc
Copy link
Copy Markdown
Contributor

  • Add demo/ package with _install_l10n_ar_payment_bundle_demo method on AccountChartTemplate
  • Add demo/l10n_ar_payment_bundle_demo.xml calling the demo installer via <function> tag
  • Register demo XML in __manifest__.py
  • Bundle 1 (outbound, Adhoc SA): vendor invoice 10,000 ARS + write-off 100 + 1 linked bank transfer 9,900
  • Bundle 2 (outbound, Gritti Agrimensura): vendor invoice 10,000 ARS + 2 linked bank transfers (6,000 + 4,000)
  • Bundle 3 (inbound, Gritti Agrimensura): customer invoice 15,000 ARS + 2 linked bank receipts (10,000 + 5,000)
  • Call _create_payment_bundle_journal_if_needed() before searching for the bundle journal to handle cases where it wasn't created at chart template install time
  • Use idempotent search-before-create pattern for invoices and write-off types to support re-installation

Change note: Se agrega data de demostración al módulo de pagos múltiples (bundle). Al instalar con datos de demo, se crean automáticamente tres ejemplos listos para explorar: un pago a proveedor con ajuste por diferencia de cambio, un pago a proveedor dividido en dos transferencias, y un cobro de cliente dividido en dos partes. Esto permite ver el flujo completo de bundles desde la instalación sin configuración previa.

- Add `demo/` package with `_install_l10n_ar_payment_bundle_demo` method on `AccountChartTemplate`
- Add `demo/l10n_ar_payment_bundle_demo.xml` calling the demo installer via `<function>` tag
- Register demo XML in `__manifest__.py`
- Bundle 1 (outbound, Adhoc SA): vendor invoice 10,000 ARS + write-off 100 + 1 linked bank transfer 9,900
- Bundle 2 (outbound, Gritti Agrimensura): vendor invoice 10,000 ARS + 2 linked bank transfers (6,000 + 4,000)
- Bundle 3 (inbound, Gritti Agrimensura): customer invoice 15,000 ARS + 2 linked bank receipts (10,000 + 5,000)
- Call `_create_payment_bundle_journal_if_needed()` before searching for the bundle journal to handle cases where it wasn't created at chart template install time
- Use idempotent search-before-create pattern for invoices and write-off types to support re-installation

Change note: Se agrega data de demostración al módulo de pagos múltiples (bundle). Al instalar con datos de demo, se crean automáticamente tres ejemplos listos para explorar: un pago a proveedor con ajuste por diferencia de cambio, un pago a proveedor dividido en dos transferencias, y un cobro de cliente dividido en dos partes. Esto permite ver el flujo completo de bundles desde la instalación sin configuración previa.
Copilot AI review requested due to automatic review settings April 27, 2026 21:24
@roboadhoc
Copy link
Copy Markdown
Contributor

Pull request status dashboard

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Este PR agrega datos de demostración al módulo l10n_ar_payment_bundle para que, al instalar con demo, queden creados ejemplos listos para explorar el flujo completo de “payment bundles” (pagos/cobros agrupados con pagos vinculados).

Changes:

  • Se incorpora un instalador Python (_install_l10n_ar_payment_bundle_demo) que crea facturas/pagos demo para compañías AR.
  • Se agrega un XML demo que dispara el instalador vía <function> y se registra en __manifest__.py.
  • Se importa el paquete demo para que el método quede disponible en runtime.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
l10n_ar_payment_bundle/demo/l10n_ar_payment_bundle_demo.xml Ejecuta el instalador de demo data desde XML.
l10n_ar_payment_bundle/demo/l10n_ar_payment_bundle_demo.py Implementa la creación de 3 bundles demo (outbound/inbound) con facturas y pagos vinculados.
l10n_ar_payment_bundle/demo/init.py Expone el módulo Python de demo.
l10n_ar_payment_bundle/manifest.py Registra el XML demo en la clave demo.
l10n_ar_payment_bundle/init.py Importa demo para que se cargue el método del chart template.

Comment on lines +123 to +127
main_payment = self.env["account.payment"].create(
{
"payment_type": "outbound",
"partner_type": "supplier",
"partner_id": partner_adhoc.id,
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El instalador crea siempre los account.payment del bundle sin un search-before-create/clave estable. Si el <function> se re-ejecuta (p.ej. upgrade con demo, o ejecución manual), esto va a duplicar pagos/bundles. Sugerencia: hacer el instalador idempotente también para los pagos (por ejemplo, usando _load_data con XML IDs, o buscando un main payment existente por partner_id + payment_type + date + algún ref/marca explícita antes de crear).

Copilot uses AI. Check for mistakes.
}
)

# Pago vinculado: tranferencia bancaria cubre el resto (deuda - write-off)
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo en comentario: “tranferencia” debería ser “transferencia”.

Suggested change
# Pago vinculado: tranferencia bancaria cubre el resto (deuda - write-off)
# Pago vinculado: transferencia bancaria cubre el resto (deuda - write-off)

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +4
<odoo>
<function model="account.chart.template" name="_install_l10n_ar_payment_bundle_demo">
<value model="res.company" eval="obj().env.ref('base.company_ri')"/>
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En los demos similares del repo se marca el root como <odoo noupdate="1"> y se pasa una lista de compañías (eval="[obj().env.ref('base.company_ri')]"). Acá falta noupdate y el eval devuelve un record suelto; conviene alinear para evitar re-ejecuciones inesperadas en updates y mantener consistencia con el resto de demos.

Suggested change
<odoo>
<function model="account.chart.template" name="_install_l10n_ar_payment_bundle_demo">
<value model="res.company" eval="obj().env.ref('base.company_ri')"/>
<odoo noupdate="1">
<function model="account.chart.template" name="_install_l10n_ar_payment_bundle_demo">
<value model="res.company" eval="[obj().env.ref('base.company_ri')]"/>

Copilot uses AI. Check for mistakes.
Comment on lines +40 to +44
[
("move_type", "=", "in_invoice"),
("company_id", "=", company.id),
("name", "like", "00001-00000099"),
("partner_id", "=", partner_adhoc.id),
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La búsqueda de la factura usa name like '00001-00000099', pero al crearla se setea l10n_latam_document_number='0001-00000099' (4 dígitos). Así la búsqueda no va a matchear y el instalador puede duplicar la factura. Sugerencia: buscar por l10n_latam_document_number (y/o l10n_latam_document_type_id) usando exactamente el mismo número que se crea, en lugar de name con un patrón distinto.

Copilot uses AI. Check for mistakes.
Comment on lines +164 to +168
("move_type", "=", "in_invoice"),
("company_id", "=", company.id),
("name", "like", "00001-00000100"),
("partner_id", "=", partner_gritti.id),
],
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mismo problema de idempotencia: se busca name like '00001-00000100' pero se crea con l10n_latam_document_number='0001-00000100'. Esto impide reutilizar la factura existente y puede duplicar datos demo. Sugerencia: alinear el criterio de búsqueda con el campo l10n_latam_document_number/tipo de documento.

Copilot uses AI. Check for mistakes.
Comment on lines +260 to +264
("move_type", "=", "out_invoice"),
("company_id", "=", company.id),
("name", "like", "00002-00000001"),
("partner_id", "=", partner_gritti.id),
],
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La búsqueda de la factura de cliente usa name like '00002-00000001', pero al crearla se setea l10n_latam_document_number='0002-00000001'. Con ese desfase, en re-ejecuciones del instalador no va a encontrar la existente y puede duplicar la factura demo. Sugerencia: buscar por l10n_latam_document_number (y mantener el mismo formato de número).

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants