Skip to content

feat(i18n): PDF de cotizacion en el idioma del usuario - #77

Merged
keilynrp merged 2 commits into
masterfrom
feat/i18n-quote-pdf
Oct 9, 2026
Merged

keilynrp merged 2 commits into
masterfrom
feat/i18n-quote-pdf

Conversation

@keilynrp

@keilynrp keilynrp commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Resumen

Segundo paso del recorrido en inglés (tarea 12): el PDF de cotización (sales/pdf.py) era el otro artefacto de servidor con texto cableado en español (~24 cadenas que el plan no listaba). Ahora sigue el idioma del usuario.

  • Catálogo quote_pdf (es y en), con la misma disposición que invoice_pdf.
  • generate_quote_pdf(..., locale=): la ruta GET /sales/quotes/{id}/pdf toma el idioma de get_current_locale, igual que la de factura.
  • Fechas, importes y cantidades con el formato de feat(i18n): fechas e importes del servidor segun el idioma #76 (core/i18n/format.py). Las cantidades sin decimales fijos usan format_number(decimals=None): 2.5 en en, 2,5 en es-ES.
  • Un estado sin entrada en el catálogo sale tal cual, como en el PDF de factura.

Un cambio visible en español

El estado salía como el código interno en inglés y en mayúsculas (SENT) en cualquier idioma. Ahora sale traducido (ENVIADA / SENT). Es una corrección deliberada y está fijada a mano en el golden; el resto del texto en español es idéntico al de antes.

Verificación

  • test_quote_pdf_locale.py: golden en español (capturado antes de tocar el código), catálogo pseudo-localizado EN(...) para detectar etiquetas cableadas, inglés real, formato por región y la ruta (idioma del usuario y del workspace).
  • Mutación: cablear una etiqueta o la fecha a mano rompe 4 tests.
  • 91 tests de las suites afectadas pasan (catálogos, barrido de claves huérfanas, contratos de ventas).
  • Gobernanza y recuentos documentados (971 tests, 50 archivos) comprobados en local.
  • No se corrió la suite completa del backend en local (la corre CI).

Siguiente

Textos en español del portal y etiquetas de notificaciones, y el recorrido real en el navegador en inglés.

🤖 Generated with Claude Code

`sales/pdf.py` era el segundo artefacto de servidor con texto cableado (~24 cadenas
en espanol que el plan no listaba). Ahora pasa por un catalogo `quote_pdf` (es y en,
misma disposicion que `invoice_pdf`) y por el formato de `core/i18n/format.py`.

- `generate_quote_pdf(..., locale=)`; la ruta `GET /sales/quotes/{id}/pdf` toma el
  idioma de `get_current_locale`, como la de factura.
- Fecha de validez, importes y cantidades siguen al idioma (`2.5` o `2,5`; la cantidad
  sin decimales fijos sale con `format_number(decimals=None)`).
- Estado: antes salia el codigo interno en ingles en mayusculas (`SENT`) en cualquier
  idioma; ahora sale traducido (`ENVIADA` / `SENT`). Es el unico cambio visible en
  espanol y esta fijado en el golden.
- Un estado sin entrada en el catalogo sale tal cual, como en el PDF de factura.

Tests: `test_quote_pdf_locale.py` (golden en espanol, catalogo pseudo-localizado,
ingles real, formato por region y la ruta). Comprobado que cablear una etiqueta o la
fecha a mano rompe 4 tests. Recuentos documentados 957 -> 971.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T14:33:18.085921Z 8e53d57 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8e53d571e3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +71 to +72
if decimals is None:
text = f"{value:,.6f}".rstrip("0").rstrip(".")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve quantities smaller than six decimal places

When a quote contains an accepted positive quantity below 0.0000005 (the sales schemas impose no minimum precision), formatting with six fixed decimal places rounds it to zero before trimming, so a quantity such as 0.0000001 is printed as 0 in the PDF. The previous :g rendering retained this value as 1e-07; the variable-decimal path should preserve enough significant digits rather than silently changing a nonzero quantity.

Useful? React with 👍 / 👎.

…abulario

`test_english_artifacts.py` rompia en CI: "Attn" es la misma abreviatura en espanol y
en ingles, pero el catalogo es de la cotizacion la anadia al vocabulario "solo
espanol". No lo vi en local porque corri las suites del PDF y no esta.

- `attn` entra en `SHARED_WITH_SPANISH` (abreviatura compartida, como `sku`).
- Se anaden al mismo fichero los controles del PDF de cotizacion, que no tenia: sus
  etiquetas en ingles, que no queda espanol (salvo los datos de la cotizacion) y que
  el control puede fallar (el mismo PDF en espanol si da palabras solo-espanol).

Recuento documentado 971 -> 974.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
@keilynrp
keilynrp merged commit ac3cd11 into master Oct 9, 2026
5 checks passed
@keilynrp
keilynrp deleted the feat/i18n-quote-pdf branch October 9, 2026 16:17
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.

1 participant