feat(sales): exponer aprobación por ítem en QuoteDto para precarga documental #33

Closed
opened 2026-03-22 20:49:54 +00:00 by leandro · 0 comments
Owner

Objetivo

Extender el DTO de lectura de presupuestos para exponer el estado y los valores de aprobación por ítem, de modo que futuras pantallas documentales como Delivery Note puedan precargar únicamente los renglones aprobados con sus cantidades efectivamente autorizadas.


Contexto funcional

El módulo Quotes ya cuenta con autorización de presupuestos y persistencia de aprobación por línea en PhSQuoteDetails, incluyendo campos como Approved, Approvedquantity, Approvedunitprice y Approvedamount.

Sin embargo, el contrato de lectura actual (QuoteDto.Items) no expone esa información. Hoy la UI solo recibe cantidad y precio cotizados originalmente, pero no puede distinguir qué líneas fueron aprobadas ni con qué cantidad aprobada.

Esto bloquea la implementación correcta de la emisión de Delivery Note a partir de un presupuesto aprobado, ya que la nueva pantalla deberá construir sus ítems usando la aprobación real por renglón y no solo el detalle original cotizado.

El ajuste del lookup de presupuestos aprobados ya fue resuelto aparte y se considera integrado al momento de esta story.


Alcance

Esta story incluye exclusivamente:

DOMAIN

  • extender Domain/Dtos/QuoteItemDto.cs
  • incorporar al DTO los campos de aprobación por ítem:
    • Approved
    • ApprovedQuantity
    • ApprovedUnitPrice
    • ApprovedAmount

DATA

  • ajustar la proyección en Models/Repositories/PhSQuoteRepository.cs
  • mapear correctamente los nuevos campos en:
    • GetDtoByIdAsync(int id)
    • cualquier otra proyección de QuoteDto que construya Items y se use como fuente real de lectura documental

Validación técnica

  • mantener compatibilidad de contrato general de QuoteDto
  • no alterar firmas públicas existentes
  • no modificar modelos EF generados por scaffold

Fuera de alcance

Esta story no incluye:

  • emisión de Delivery Note
  • cambios en UI de Quotes
  • nuevos endpoints
  • cambios en lookup de presupuestos aprobados
  • cambios en lógica de autorización
  • recalcular importes aprobados en backend
  • cambios en PDF o impresión
  • cambios en QuoteDto fuera del detalle de ítems

Criterios de aceptación

  • QuoteItemDto expone los campos de aprobación por línea
  • PhSQuoteRepository proyecta correctamente Approved, ApprovedQuantity, ApprovedUnitPrice y ApprovedAmount
  • GetDtoByIdAsync(int id) devuelve esos valores completos en cada ítem
  • no se modifican modelos EF generados por scaffold
  • no se rompen firmas públicas existentes
  • la solución compila sin errores
  • el cambio deja a QuoteDto listo para ser reutilizado por la futura emisión de Delivery Note

Decisiones de diseño

  • se reutilizan exactamente los datos ya persistidos en PhSQuoteDetails, sin introducir reinterpretaciones ni nuevos cálculos
  • los nombres nuevos del DTO se expresan en PascalCase, manteniendo consistencia con el resto de QuoteItemDto
  • esta story se limita al contrato de lectura y su proyección, sin contaminarla con lógica de Delivery Note
  • el ajuste se considera prerequisito funcional de la emisión documental basada en Quotes aprobados

Entregable esperado

  • Domain/Dtos/QuoteItemDto.cs
  • Models/Repositories/PhSQuoteRepository.cs

Próxima Story sugerida

feat(sales): implementar emisión de Delivery Note

## Objetivo Extender el DTO de lectura de presupuestos para exponer el estado y los valores de aprobación por ítem, de modo que futuras pantallas documentales como Delivery Note puedan precargar únicamente los renglones aprobados con sus cantidades efectivamente autorizadas. --- ## Contexto funcional El módulo Quotes ya cuenta con autorización de presupuestos y persistencia de aprobación por línea en `PhSQuoteDetails`, incluyendo campos como `Approved`, `Approvedquantity`, `Approvedunitprice` y `Approvedamount`. Sin embargo, el contrato de lectura actual (`QuoteDto.Items`) no expone esa información. Hoy la UI solo recibe cantidad y precio cotizados originalmente, pero no puede distinguir qué líneas fueron aprobadas ni con qué cantidad aprobada. Esto bloquea la implementación correcta de la emisión de Delivery Note a partir de un presupuesto aprobado, ya que la nueva pantalla deberá construir sus ítems usando la aprobación real por renglón y no solo el detalle original cotizado. El ajuste del lookup de presupuestos aprobados ya fue resuelto aparte y se considera integrado al momento de esta story. --- ## Alcance Esta story incluye exclusivamente: ### DOMAIN - extender `Domain/Dtos/QuoteItemDto.cs` - incorporar al DTO los campos de aprobación por ítem: - `Approved` - `ApprovedQuantity` - `ApprovedUnitPrice` - `ApprovedAmount` ### DATA - ajustar la proyección en `Models/Repositories/PhSQuoteRepository.cs` - mapear correctamente los nuevos campos en: - `GetDtoByIdAsync(int id)` - cualquier otra proyección de `QuoteDto` que construya `Items` y se use como fuente real de lectura documental ### Validación técnica - mantener compatibilidad de contrato general de `QuoteDto` - no alterar firmas públicas existentes - no modificar modelos EF generados por scaffold --- ## Fuera de alcance Esta story no incluye: - emisión de Delivery Note - cambios en UI de Quotes - nuevos endpoints - cambios en lookup de presupuestos aprobados - cambios en lógica de autorización - recalcular importes aprobados en backend - cambios en PDF o impresión - cambios en `QuoteDto` fuera del detalle de ítems --- ## Criterios de aceptación - `QuoteItemDto` expone los campos de aprobación por línea - `PhSQuoteRepository` proyecta correctamente `Approved`, `ApprovedQuantity`, `ApprovedUnitPrice` y `ApprovedAmount` - `GetDtoByIdAsync(int id)` devuelve esos valores completos en cada ítem - no se modifican modelos EF generados por scaffold - no se rompen firmas públicas existentes - la solución compila sin errores - el cambio deja a `QuoteDto` listo para ser reutilizado por la futura emisión de Delivery Note --- ## Decisiones de diseño - se reutilizan exactamente los datos ya persistidos en `PhSQuoteDetails`, sin introducir reinterpretaciones ni nuevos cálculos - los nombres nuevos del DTO se expresan en PascalCase, manteniendo consistencia con el resto de `QuoteItemDto` - esta story se limita al contrato de lectura y su proyección, sin contaminarla con lógica de Delivery Note - el ajuste se considera prerequisito funcional de la emisión documental basada en Quotes aprobados --- ## Entregable esperado - `Domain/Dtos/QuoteItemDto.cs` - `Models/Repositories/PhSQuoteRepository.cs` --- ## Próxima Story sugerida feat(sales): implementar emisión de Delivery Note
leandro added this to the Sales (Ventas, Facturación y Remitos) milestone 2026-03-22 20:49:54 +00:00
leandro added the
STORY
label 2026-03-22 20:49:54 +00:00
leandro self-assigned this 2026-03-22 20:49:54 +00:00
leandro added this to the phronCare: Tablero DEV project 2026-03-22 20:49:54 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:51 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:52 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-24 20:24:05 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-24 20:24:07 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-25 13:27:46 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: leandro/phronCare#33
No description provided.