feat(sales): agregar servicio core de lectura para Delivery Note #17

Closed
opened 2026-03-18 03:35:42 +00:00 by leandro · 0 comments
Owner

Objetivo

Incorporar la capa Core del módulo Delivery Note mediante un servicio de lectura que encapsule el repositorio base ya implementado.


Contexto funcional

En la story #15 se completó el repositorio base de Delivery Note dentro del módulo Sales, incluyendo el acceso a datos y el mapping desde las entidades EF (PhSDeliveryNote, PhSDeliveryNoteDetail) hacia las entidades de dominio (EDeliveryNote, EDeliveryNoteDetail).

El módulo ya dispone de capacidad de lectura desde Data, pero aún no existe una capa Core que centralice el acceso desde la lógica de negocio y prepare el camino para la futura exposición por API.

Dado que el desarrollo debe avanzar de manera incremental y respetando la arquitectura Data → Domain → Core → API → UI, el siguiente paso lógico es crear un servicio Core mínimo, enfocado únicamente en consultas.


Alcance

Esta story incluye exclusivamente la incorporación de la capa Core para consultas de Delivery Note.

Incluye:

  • Crear la interfaz de dominio/core para Delivery Note.
  • Crear el servicio Core que implemente dicha interfaz.
  • Delegar en el repositorio existente IPhSDeliveryNoteRepository.
  • Exponer únicamente operaciones de lectura:
    • obtener por id
    • obtener por deliveryNoteNumber
    • obtener por quoteId
  • Agregar validaciones mínimas de parámetros de entrada en la capa Core.

Archivos esperables dentro del alcance:

  • Core/Interfaces/IDeliveryNoteDom.cs
  • Core/Services/DeliveryNoteService.cs

Fuera de alcance

Esta story no incluye:

  • endpoints API
  • registro en controladores
  • UI Blazor
  • creación completa de Delivery Note
  • numeración de documentos
  • integración funcional con Quote
  • generación de PDF
  • exportación a Excel
  • búsquedas paginadas o filtros avanzados
  • cambios sobre modelos EF generados por scaffold
  • lógica transaccional de alta, edición o anulación

Criterios de aceptación

  • ✔ Existe una interfaz Core específica para Delivery Note.
  • ✔ Existe una implementación de servicio Core consistente con los patrones del proyecto.
  • ✔ El servicio reutiliza IPhSDeliveryNoteRepository ya implementado.
  • ✔ El servicio expone métodos de lectura por id, deliveryNoteNumber y quoteId.
  • ✔ Se validan parámetros básicos inválidos en la capa Core.
  • ✔ El código compila sin errores.
  • ✔ No se modifican manualmente modelos EF generados por scaffold.
  • ✔ Se mantiene consistencia de nombres, namespaces y estructura con los módulos existentes.

Decisiones de diseño

  • Se adopta el patrón ya usado en el proyecto para la capa Core: interfaz *Dom + implementación *Service.
  • La story se limita a lectura para mantener alcance pequeño y atómico.
  • La lógica de creación y numeración de Delivery Note se posterga para stories posteriores.
  • La consulta por quoteId se considera válida en esta etapa porque ya está soportada por el repositorio y no implica todavía una integración funcional completa con Quote.
  • La capa Core funcionará como punto de entrada para la futura capa API, evitando que los controladores consuman repositorios directamente.

Entregable esperado

  • Core/Interfaces/IDeliveryNoteDom.cs
  • Core/Services/DeliveryNoteService.cs

Próxima Story sugerida (opcional)

feat(sales): exponer endpoints API de consulta para Delivery Note

## Objetivo Incorporar la capa Core del módulo Delivery Note mediante un servicio de lectura que encapsule el repositorio base ya implementado. --- ## Contexto funcional En la story #15 se completó el repositorio base de Delivery Note dentro del módulo Sales, incluyendo el acceso a datos y el mapping desde las entidades EF (`PhSDeliveryNote`, `PhSDeliveryNoteDetail`) hacia las entidades de dominio (`EDeliveryNote`, `EDeliveryNoteDetail`). El módulo ya dispone de capacidad de lectura desde Data, pero aún no existe una capa Core que centralice el acceso desde la lógica de negocio y prepare el camino para la futura exposición por API. Dado que el desarrollo debe avanzar de manera incremental y respetando la arquitectura Data → Domain → Core → API → UI, el siguiente paso lógico es crear un servicio Core mínimo, enfocado únicamente en consultas. --- ## Alcance Esta story incluye exclusivamente la incorporación de la capa Core para consultas de Delivery Note. Incluye: - Crear la interfaz de dominio/core para Delivery Note. - Crear el servicio Core que implemente dicha interfaz. - Delegar en el repositorio existente `IPhSDeliveryNoteRepository`. - Exponer únicamente operaciones de lectura: - obtener por `id` - obtener por `deliveryNoteNumber` - obtener por `quoteId` - Agregar validaciones mínimas de parámetros de entrada en la capa Core. Archivos esperables dentro del alcance: - `Core/Interfaces/IDeliveryNoteDom.cs` - `Core/Services/DeliveryNoteService.cs` --- ## Fuera de alcance Esta story no incluye: - endpoints API - registro en controladores - UI Blazor - creación completa de Delivery Note - numeración de documentos - integración funcional con Quote - generación de PDF - exportación a Excel - búsquedas paginadas o filtros avanzados - cambios sobre modelos EF generados por scaffold - lógica transaccional de alta, edición o anulación --- ## Criterios de aceptación - ✔ Existe una interfaz Core específica para Delivery Note. - ✔ Existe una implementación de servicio Core consistente con los patrones del proyecto. - ✔ El servicio reutiliza `IPhSDeliveryNoteRepository` ya implementado. - ✔ El servicio expone métodos de lectura por `id`, `deliveryNoteNumber` y `quoteId`. - ✔ Se validan parámetros básicos inválidos en la capa Core. - ✔ El código compila sin errores. - ✔ No se modifican manualmente modelos EF generados por scaffold. - ✔ Se mantiene consistencia de nombres, namespaces y estructura con los módulos existentes. --- ## Decisiones de diseño - Se adopta el patrón ya usado en el proyecto para la capa Core: interfaz `*Dom` + implementación `*Service`. - La story se limita a lectura para mantener alcance pequeño y atómico. - La lógica de creación y numeración de Delivery Note se posterga para stories posteriores. - La consulta por `quoteId` se considera válida en esta etapa porque ya está soportada por el repositorio y no implica todavía una integración funcional completa con Quote. - La capa Core funcionará como punto de entrada para la futura capa API, evitando que los controladores consuman repositorios directamente. --- ## Entregable esperado - `Core/Interfaces/IDeliveryNoteDom.cs` - `Core/Services/DeliveryNoteService.cs` --- ## Próxima Story sugerida (opcional) feat(sales): exponer endpoints API de consulta para Delivery Note
leandro added the
STORY
label 2026-03-18 03:51:12 +00:00
leandro added this to the Sales (Ventas, Facturación y Remitos) milestone 2026-03-18 03:51:15 +00:00
leandro added this to the phronCare: Tablero DEV project 2026-03-18 03:51:19 +00:00
leandro self-assigned this 2026-03-18 03:51:24 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:39 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:40 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:42 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:45 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:47 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:49 +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#17
No description provided.