[ADD] l10n_ar_payment_bundle: add Argentina demo data#1034
[ADD] l10n_ar_payment_bundle: add Argentina demo data#1034cav-adhoc wants to merge 1 commit intoingadhoc:19.0from
Conversation
- 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.
There was a problem hiding this comment.
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
demopara 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. |
| main_payment = self.env["account.payment"].create( | ||
| { | ||
| "payment_type": "outbound", | ||
| "partner_type": "supplier", | ||
| "partner_id": partner_adhoc.id, |
There was a problem hiding this comment.
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).
| } | ||
| ) | ||
|
|
||
| # Pago vinculado: tranferencia bancaria cubre el resto (deuda - write-off) |
There was a problem hiding this comment.
Typo en comentario: “tranferencia” debería ser “transferencia”.
| # Pago vinculado: tranferencia bancaria cubre el resto (deuda - write-off) | |
| # Pago vinculado: transferencia bancaria cubre el resto (deuda - write-off) |
| <odoo> | ||
| <function model="account.chart.template" name="_install_l10n_ar_payment_bundle_demo"> | ||
| <value model="res.company" eval="obj().env.ref('base.company_ri')"/> |
There was a problem hiding this comment.
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.
| <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')]"/> |
| [ | ||
| ("move_type", "=", "in_invoice"), | ||
| ("company_id", "=", company.id), | ||
| ("name", "like", "00001-00000099"), | ||
| ("partner_id", "=", partner_adhoc.id), |
There was a problem hiding this comment.
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.
| ("move_type", "=", "in_invoice"), | ||
| ("company_id", "=", company.id), | ||
| ("name", "like", "00001-00000100"), | ||
| ("partner_id", "=", partner_gritti.id), | ||
| ], |
There was a problem hiding this comment.
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.
| ("move_type", "=", "out_invoice"), | ||
| ("company_id", "=", company.id), | ||
| ("name", "like", "00002-00000001"), | ||
| ("partner_id", "=", partner_gritti.id), | ||
| ], |
There was a problem hiding this comment.
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).

demo/package with_install_l10n_ar_payment_bundle_demomethod onAccountChartTemplatedemo/l10n_ar_payment_bundle_demo.xmlcalling the demo installer via<function>tag__manifest__.py_create_payment_bundle_journal_if_needed()before searching for the bundle journal to handle cases where it wasn't created at chart template install timeChange 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.