feat(sales): agregar drawer de detalle para Delivery Note #31

Closed
opened 2026-03-21 16:28:04 +00:00 by leandro · 0 comments
Owner

Objetivo

Incorporar la visualización de detalle de un remito desde la pantalla de consulta /deliverynotes, mediante un drawer lateral consistente con el patrón ya utilizado en Quotes y Expeditions.


Contexto funcional

El módulo Delivery Note ya cuenta con backend de lectura implementado:

  • repositorio IPhSDeliveryNoteRepository / PhSDeliveryNoteRepository
  • core IDeliveryNoteDom / DeliveryNoteService
  • API DeliveryNoteController
  • endpoint GET /api/deliverynote/search
  • endpoint GET /api/deliverynote/{id}

En la UI Blazor ya existe la página /deliverynotes con:

  • filtros
  • tabla manual
  • paginación
  • botón Ver actualmente como placeholder

Dado que en PhronCare las pantallas principales de documentos deben mantener una experiencia homogénea, la resolución del detalle de Delivery Note debe alinearse al estándar ya consolidado:

  • Quotes: consulta principal + drawer lateral
  • Expeditions: consulta principal + componente drawer separado

Esta story cubre exclusivamente la visualización del detalle desde la consulta, sin mezclar impresión, edición ni creación.


Alcance

Esta story incluye únicamente cambios en UI Blazor para permitir abrir un drawer lateral de detalle desde la grilla de remitos.

Incluye:

  • crear un componente de detalle lateral para Delivery Note
  • integrar la apertura del drawer desde el botón Ver de la grilla
  • reutilizar GetByIdAsync(int id) ya disponible en el servicio UI
  • mostrar una vista de detalle con dos tabs:
    • Datos
    • Items
  • mostrar en Datos:
    • número de remito
    • fecha de emisión
    • cliente
    • presupuesto relacionado
    • estado
    • reimpresiones
    • observaciones
  • mostrar en Items una tabla con:
    • línea
    • descripción
    • cantidad
    • origen
    • notas
  • mantener la pantalla /deliverynotes sin navegación a otra página
  • conservar filtros, paginación y contexto de búsqueda mientras se consulta el detalle

Archivos estimados a tocar:

  • phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNotes.razor
  • phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNoteDetailDrawer.razor

Opcionalmente, si hiciera falta solo por orden o tipado visual:

  • ningún cambio en API
  • ningún cambio en Core
  • ningún cambio en Domain
  • ningún cambio en Models/Data

Fuera de alcance

Queda explícitamente fuera de esta story:

  • impresión PDF del remito
  • reimpresión desde el drawer
  • edición del remito
  • creación de remitos
  • anulación o cambio de estado
  • incorporación de nuevos endpoints
  • modificación del DeliveryNoteDto
  • rediseño del backend o del repositorio
  • navegación a una página independiente de detalle

Criterios de aceptación

  • ✔ Desde la grilla de /deliverynotes, el botón Ver abre un drawer lateral
  • ✔ El drawer no navega fuera de la pantalla de consulta
  • ✔ El drawer muestra una tab Datos
  • ✔ El drawer muestra una tab Items
  • ✔ La tab Datos exhibe la información principal del remito
  • ✔ La tab Items exhibe el detalle de líneas del remito
  • ✔ La carga del detalle utiliza el endpoint existente GET /api/deliverynote/{id}
  • ✔ La pantalla mantiene filtros y paginación al abrir/cerrar el detalle
  • ✔ No se modifican modelos EF generados por scaffold
  • ✔ No se introducen cambios innecesarios en Domain, Core o API
  • ✔ El comportamiento visual resulta consistente con Quotes como estándar del producto

Decisiones de diseño

  • Se elige drawer lateral y no página nueva ni modal, para mantener consistencia con las consultas principales de documentos del sistema.
  • Se reutiliza el backend existente sin extender contratos.
  • Para evitar cambios en DeliveryNoteDto, se combinará en UI:
    • DeliveryNoteSummaryDto seleccionado en la grilla, para datos ya visibles como CustomerName y QuoteNumber
    • DeliveryNoteDto obtenido por id, para cabecera persistida e ítems
  • El drawer se implementará como componente separado, siguiendo el enfoque de Expeditions, pero respetando la experiencia visual general de Quotes.
  • La story se mantiene atómica: solo consulta de detalle.

Entregable esperado

Archivos creados o modificados:

  • phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNotes.razor
  • phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNoteDetailDrawer.razor

Resultado funcional esperado:

  • consulta de remitos operativa
  • apertura de detalle lateral desde la grilla
  • visualización de datos e ítems del remito sin salir de la página

Próxima Story sugerida (opcional)

feat(sales): agregar impresión PDF de Delivery Note desde la consulta

## Objetivo Incorporar la visualización de detalle de un remito desde la pantalla de consulta `/deliverynotes`, mediante un drawer lateral consistente con el patrón ya utilizado en Quotes y Expeditions. --- ## Contexto funcional El módulo Delivery Note ya cuenta con backend de lectura implementado: - repositorio `IPhSDeliveryNoteRepository / PhSDeliveryNoteRepository` - core `IDeliveryNoteDom / DeliveryNoteService` - API `DeliveryNoteController` - endpoint `GET /api/deliverynote/search` - endpoint `GET /api/deliverynote/{id}` En la UI Blazor ya existe la página `/deliverynotes` con: - filtros - tabla manual - paginación - botón `Ver` actualmente como placeholder Dado que en PhronCare las pantallas principales de documentos deben mantener una experiencia homogénea, la resolución del detalle de Delivery Note debe alinearse al estándar ya consolidado: - Quotes: consulta principal + drawer lateral - Expeditions: consulta principal + componente drawer separado Esta story cubre exclusivamente la visualización del detalle desde la consulta, sin mezclar impresión, edición ni creación. --- ## Alcance Esta story incluye únicamente cambios en UI Blazor para permitir abrir un drawer lateral de detalle desde la grilla de remitos. Incluye: - crear un componente de detalle lateral para Delivery Note - integrar la apertura del drawer desde el botón `Ver` de la grilla - reutilizar `GetByIdAsync(int id)` ya disponible en el servicio UI - mostrar una vista de detalle con dos tabs: - `Datos` - `Items` - mostrar en `Datos`: - número de remito - fecha de emisión - cliente - presupuesto relacionado - estado - reimpresiones - observaciones - mostrar en `Items` una tabla con: - línea - descripción - cantidad - origen - notas - mantener la pantalla `/deliverynotes` sin navegación a otra página - conservar filtros, paginación y contexto de búsqueda mientras se consulta el detalle Archivos estimados a tocar: - `phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNotes.razor` - `phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNoteDetailDrawer.razor` Opcionalmente, si hiciera falta solo por orden o tipado visual: - ningún cambio en API - ningún cambio en Core - ningún cambio en Domain - ningún cambio en Models/Data --- ## Fuera de alcance Queda explícitamente fuera de esta story: - impresión PDF del remito - reimpresión desde el drawer - edición del remito - creación de remitos - anulación o cambio de estado - incorporación de nuevos endpoints - modificación del `DeliveryNoteDto` - rediseño del backend o del repositorio - navegación a una página independiente de detalle --- ## Criterios de aceptación - ✔ Desde la grilla de `/deliverynotes`, el botón `Ver` abre un drawer lateral - ✔ El drawer no navega fuera de la pantalla de consulta - ✔ El drawer muestra una tab `Datos` - ✔ El drawer muestra una tab `Items` - ✔ La tab `Datos` exhibe la información principal del remito - ✔ La tab `Items` exhibe el detalle de líneas del remito - ✔ La carga del detalle utiliza el endpoint existente `GET /api/deliverynote/{id}` - ✔ La pantalla mantiene filtros y paginación al abrir/cerrar el detalle - ✔ No se modifican modelos EF generados por scaffold - ✔ No se introducen cambios innecesarios en Domain, Core o API - ✔ El comportamiento visual resulta consistente con Quotes como estándar del producto --- ## Decisiones de diseño - Se elige **drawer lateral** y no página nueva ni modal, para mantener consistencia con las consultas principales de documentos del sistema. - Se reutiliza el backend existente sin extender contratos. - Para evitar cambios en `DeliveryNoteDto`, se combinará en UI: - `DeliveryNoteSummaryDto` seleccionado en la grilla, para datos ya visibles como `CustomerName` y `QuoteNumber` - `DeliveryNoteDto` obtenido por id, para cabecera persistida e ítems - El drawer se implementará como **componente separado**, siguiendo el enfoque de Expeditions, pero respetando la experiencia visual general de Quotes. - La story se mantiene atómica: solo consulta de detalle. --- ## Entregable esperado Archivos creados o modificados: - `phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNotes.razor` - `phronCare.UIBlazor/Pages/Sales/DeliveryNotes/DeliveryNoteDetailDrawer.razor` Resultado funcional esperado: - consulta de remitos operativa - apertura de detalle lateral desde la grilla - visualización de datos e ítems del remito sin salir de la página --- ## Próxima Story sugerida (opcional) feat(sales): agregar impresión PDF de Delivery Note desde la consulta
leandro added the
STORY
label 2026-03-22 23:57:42 +00:00
leandro added this to the Sales (Ventas, Facturación y Remitos) milestone 2026-03-22 23:57:53 +00:00
leandro added this to the phronCare: Tablero DEV project 2026-03-22 23:57:57 +00:00
leandro self-assigned this 2026-03-22 23:58:16 +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#31
No description provided.