Skip to content

[FIX] stock_voucher_ux: asignar números de remito antes de imprimir#941

Closed
mav-adhoc wants to merge 5 commits into
ingadhoc:18.0from
adhoc-dev:18.0-t-67613-mav
Closed

[FIX] stock_voucher_ux: asignar números de remito antes de imprimir#941
mav-adhoc wants to merge 5 commits into
ingadhoc:18.0from
adhoc-dev:18.0-t-67613-mav

Conversation

@mav-adhoc

Copy link
Copy Markdown
Contributor

Problema

Al usar el botón Print Vouchers en un remito con autoprinted=False (formulario pre-impreso), los números de remito se asignaban después de generar el PDF (en el controller HTTP), por lo que la primera impresión salía sin número. El usuario tenía que imprimir dos veces.

Solución

En do_print_and_assign, para el caso autoprinted=False, se llama assign_numbers(get_estimated_number_of_pages(), book_id) antes de invocar do_print_voucher(), igual que el flujo de autoprinted=True.

El controller conserva la guarda if not voucher_ids que evita doble asignación cuando ya fueron pre-asignados.

Task

https://www.adhoc.inc/odoo/knowledge/180/902/tasks/67613

@roboadhoc

Copy link
Copy Markdown
Collaborator

Pull request status dashboard

Al imprimir desde do_print_and_assign con autoprinted=False, los números
se asignaban luego de generar el PDF (en el controller), lo que causaba
que la primera impresión saliera sin número. Ahora se asignan antes usando
get_estimated_number_of_pages(), igual que el flujo de autoprinted=True.
…nted=False

Al contar páginas del PDF real (en el controller) para asignar la cantidad
correcta de números de remito, el PDF ya estaba generado sin ellos. Ahora,
después de assign_numbers, se regenera el PDF para que los números aparezcan
en la primera impresión.

Revierte el enfoque de pre-asignación basado en get_estimated_number_of_pages()
que fallaba cuando lines_per_voucher=0 (siempre asignaba 1).
…mito

El report_ref 'stock.report_deliveryslip' resuelve a un ir.ui.view (template
QWeb) en vez del ir.actions.report, fallando silenciosamente. Usar
'stock.action_report_delivery' que es el XML ID correcto del action.
Además se elimina el except que ocultaba el error.
…remito

El campo vouchers (store=True computed) tenía valor correcto en el cache ORM
pero _render_qweb_pdf crea un nuevo environment que lee desde DB, donde el
write todavía estaba pendiente (diferido). flush_all() fuerza la escritura
antes de renderizar.
…-printed)

stock_voucher: get_estimated_number_of_pages usa move_line_ids en lugar de
move_ids, consistente con el wizard. Esto estima correctamente cuando hay
varios lotes por producto que generan más líneas en el PDF.

stock_voucher_ux: do_print_and_assign asigna números ANTES de llamar a
do_print_voucher para autoprinted=False, garantizando que el primer PDF
ya tenga los números. El controller queda como fallback (sin regeneración)
para rutas de impresión que no pasen por este método.
@les-adhoc

Copy link
Copy Markdown
Contributor

@roboadhoc r+ nobump

@roboadhoc

Copy link
Copy Markdown
Collaborator

@mav-adhoc @les-adhoc because this PR has multiple commits, I need to know how to merge it:

  • merge to merge directly, using the PR as merge commit message
  • rebase-merge to rebase and merge, using the PR as merge commit message
  • rebase-ff to rebase and fast-forward

@les-adhoc

Copy link
Copy Markdown
Contributor

@roboadhoc r+ nobump rebase-ff

@roboadhoc

Copy link
Copy Markdown
Collaborator

This PR is already reviewed, reviewing it again is useless.

@roboadhoc

Copy link
Copy Markdown
Collaborator

Merge method set to rebase and fast-forward.

roboadhoc pushed a commit that referenced this pull request Jun 16, 2026
Al imprimir desde do_print_and_assign con autoprinted=False, los números
se asignaban luego de generar el PDF (en el controller), lo que causaba
que la primera impresión saliera sin número. Ahora se asignan antes usando
get_estimated_number_of_pages(), igual que el flujo de autoprinted=True.

Part-of: #941
Signed-off-by: Luciano Esperlazza <les@adhoc.inc>
roboadhoc pushed a commit that referenced this pull request Jun 16, 2026
…nted=False

Al contar páginas del PDF real (en el controller) para asignar la cantidad
correcta de números de remito, el PDF ya estaba generado sin ellos. Ahora,
después de assign_numbers, se regenera el PDF para que los números aparezcan
en la primera impresión.

Revierte el enfoque de pre-asignación basado en get_estimated_number_of_pages()
que fallaba cuando lines_per_voucher=0 (siempre asignaba 1).

Part-of: #941
Signed-off-by: Luciano Esperlazza <les@adhoc.inc>
roboadhoc pushed a commit that referenced this pull request Jun 16, 2026
…mito

El report_ref 'stock.report_deliveryslip' resuelve a un ir.ui.view (template
QWeb) en vez del ir.actions.report, fallando silenciosamente. Usar
'stock.action_report_delivery' que es el XML ID correcto del action.
Además se elimina el except que ocultaba el error.

Part-of: #941
Signed-off-by: Luciano Esperlazza <les@adhoc.inc>
roboadhoc pushed a commit that referenced this pull request Jun 16, 2026
…remito

El campo vouchers (store=True computed) tenía valor correcto en el cache ORM
pero _render_qweb_pdf crea un nuevo environment que lee desde DB, donde el
write todavía estaba pendiente (diferido). flush_all() fuerza la escritura
antes de renderizar.

Part-of: #941
Signed-off-by: Luciano Esperlazza <les@adhoc.inc>
roboadhoc pushed a commit that referenced this pull request Jun 16, 2026
…-printed)

stock_voucher: get_estimated_number_of_pages usa move_line_ids en lugar de
move_ids, consistente con el wizard. Esto estima correctamente cuando hay
varios lotes por producto que generan más líneas en el PDF.

stock_voucher_ux: do_print_and_assign asigna números ANTES de llamar a
do_print_voucher para autoprinted=False, garantizando que el primer PDF
ya tenga los números. El controller queda como fallback (sin regeneración)
para rutas de impresión que no pasen por este método.

closes #941

Signed-off-by: Luciano Esperlazza <les@adhoc.inc>
@roboadhoc roboadhoc closed this Jun 16, 2026
@roboadhoc roboadhoc deleted the 18.0-t-67613-mav branch June 16, 2026 20:07
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