feat(sales): agregar repositorio data base para delivery note #15

Closed
opened 2026-03-17 01:46:48 +00:00 by leandro · 0 comments
Owner

Objetivo

Implementar el repositorio base en la capa Data para acceder a los Delivery Notes desde la base de datos y mapearlos hacia las entidades de dominio EDeliveryNote y EDeliveryNoteDetail.

Esto permitirá que las capas superiores (Core, API y UI) puedan consultar remitos utilizando el modelo de dominio.


Contexto funcional

El módulo Sales incorporará el nuevo documento Delivery Note (Remito).

En la story #13 se agregaron las entidades de dominio necesarias:

Domain/Entities

  • EDeliveryNote.cs
  • EDeliveryNoteDetail.cs

Domain/Constants

  • DeliveryNoteItemOriginType.cs

La persistencia ya existe en el modelo EF scaffold:

  • PhSDeliveryNote
  • PhSDeliveryNoteDetail

Sin embargo, aún no existe un repositorio que permita acceder a estos datos desde la capa Data y mapearlos a las entidades de dominio.

El siguiente paso lógico es implementar el repositorio base de Delivery Notes, que servirá como puente entre Data y Domain.


Alcance

Implementar el repositorio base de Delivery Notes en la capa Data.

Se deben crear:

Interfaz del repositorio

Data/Interfaces/IDeliveryNoteRepository.cs

Responsabilidades:

  • Definir el contrato de acceso a Delivery Notes
  • Permitir obtener un remito con sus detalles

Método inicial:

Task<EDeliveryNote?> GetByIdAsync(int id);


Implementación del repositorio

Data/Repositories/Sales/PhSDeliveryNoteRepository.cs

Responsabilidades:

  • Consultar la tabla:

    • PhSDeliveryNote
  • Incluir sus detalles:

    • PhSDeliveryNoteDetail
  • Mapear los resultados hacia:

    • EDeliveryNote
    • EDeliveryNoteDetail
  • Retornar la entidad de dominio completa.


Fuera de alcance

Esta story no incluye:

  • creación de Delivery Notes
  • lógica de negocio
  • servicios Core
  • endpoints API
  • UI Blazor
  • generación de documentos PDF
  • numeración de remitos
  • integración con Quotes
  • venta directa
  • edición o eliminación de remitos

Todo eso será abordado en stories posteriores.


Criterios de aceptación

✔ El proyecto compila correctamente.

✔ Existe una interfaz:
IDeliveryNoteRepository

✔ Existe una implementación:
PhSDeliveryNoteRepository

✔ El repositorio permite obtener un Delivery Note por Id.

✔ El Delivery Note incluye correctamente sus DeliveryNoteDetails.

✔ Los datos se mapean correctamente a:

  • EDeliveryNote
  • EDeliveryNoteDetail

✔ No se modifican los modelos EF generados por scaffold.

✔ Se respetan las convenciones de arquitectura Data → Domain → Core → API → UI.


Decisiones de diseño

  • El repositorio se implementa en Data, ya que corresponde al acceso a persistencia.
  • Se utiliza EDeliveryNote como modelo de retorno para mantener consistencia con el resto del proyecto.
  • El repositorio consulta las entidades EF PhSDeliveryNote y PhSDeliveryNoteDetail pero retorna entidades de Domain.
  • El repositorio se mantiene minimalista, exponiendo únicamente el método necesario para continuar el desarrollo incremental.

Esto mantiene la story pequeña y atómica, siguiendo la metodología definida para el proyecto.


Entregable esperado

Archivos creados:

Data/Interfaces/IDeliveryNoteRepository.cs
Data/Repositories/Sales/PhSDeliveryNoteRepository.cs

Máximo 2 archivos nuevos.


Próxima Story sugerida

feat(sales): agregar servicio core base para delivery note

Donde se implementará:

Core/Services/DeliveryNoteService

que consumirá el repositorio recién creado.

## Objetivo Implementar el repositorio base en la capa **Data** para acceder a los Delivery Notes desde la base de datos y mapearlos hacia las entidades de dominio `EDeliveryNote` y `EDeliveryNoteDetail`. Esto permitirá que las capas superiores (Core, API y UI) puedan consultar remitos utilizando el modelo de dominio. --- ## Contexto funcional El módulo **Sales** incorporará el nuevo documento **Delivery Note (Remito)**. En la **story #13** se agregaron las entidades de dominio necesarias: Domain/Entities - EDeliveryNote.cs - EDeliveryNoteDetail.cs Domain/Constants - DeliveryNoteItemOriginType.cs La persistencia ya existe en el modelo EF scaffold: - PhSDeliveryNote - PhSDeliveryNoteDetail Sin embargo, aún no existe un repositorio que permita acceder a estos datos desde la capa **Data** y mapearlos a las entidades de dominio. El siguiente paso lógico es implementar el **repositorio base de Delivery Notes**, que servirá como puente entre **Data y Domain**. --- ## Alcance Implementar el repositorio base de Delivery Notes en la capa **Data**. Se deben crear: ### Interfaz del repositorio Data/Interfaces/IDeliveryNoteRepository.cs Responsabilidades: - Definir el contrato de acceso a Delivery Notes - Permitir obtener un remito con sus detalles Método inicial: Task<EDeliveryNote?> GetByIdAsync(int id); --- ### Implementación del repositorio Data/Repositories/Sales/PhSDeliveryNoteRepository.cs Responsabilidades: - Consultar la tabla: - PhSDeliveryNote - Incluir sus detalles: - PhSDeliveryNoteDetail - Mapear los resultados hacia: - EDeliveryNote - EDeliveryNoteDetail - Retornar la entidad de dominio completa. --- ## Fuera de alcance Esta story **no incluye**: - creación de Delivery Notes - lógica de negocio - servicios Core - endpoints API - UI Blazor - generación de documentos PDF - numeración de remitos - integración con Quotes - venta directa - edición o eliminación de remitos Todo eso será abordado en stories posteriores. --- ## Criterios de aceptación ✔ El proyecto compila correctamente. ✔ Existe una interfaz: IDeliveryNoteRepository ✔ Existe una implementación: PhSDeliveryNoteRepository ✔ El repositorio permite obtener un Delivery Note por **Id**. ✔ El Delivery Note incluye correctamente sus **DeliveryNoteDetails**. ✔ Los datos se mapean correctamente a: - EDeliveryNote - EDeliveryNoteDetail ✔ No se modifican los modelos EF generados por scaffold. ✔ Se respetan las convenciones de arquitectura **Data → Domain → Core → API → UI**. --- ## Decisiones de diseño - El repositorio se implementa en **Data**, ya que corresponde al acceso a persistencia. - Se utiliza **EDeliveryNote** como modelo de retorno para mantener consistencia con el resto del proyecto. - El repositorio consulta las entidades EF `PhSDeliveryNote` y `PhSDeliveryNoteDetail` pero retorna entidades de **Domain**. - El repositorio se mantiene minimalista, exponiendo únicamente el método necesario para continuar el desarrollo incremental. Esto mantiene la story **pequeña y atómica**, siguiendo la metodología definida para el proyecto. --- ## Entregable esperado Archivos creados: Data/Interfaces/IDeliveryNoteRepository.cs Data/Repositories/Sales/PhSDeliveryNoteRepository.cs Máximo **2 archivos nuevos**. --- ## Próxima Story sugerida feat(sales): agregar servicio core base para delivery note Donde se implementará: Core/Services/DeliveryNoteService que consumirá el repositorio recién creado.
leandro added the
STORY
label 2026-03-17 01:46:59 +00:00
leandro added this to the Sales (Ventas, Facturación y Remitos) milestone 2026-03-17 01:47:02 +00:00
leandro added this to the phronCare: Tablero DEV project 2026-03-17 01:47:06 +00:00
leandro self-assigned this 2026-03-17 01:47:09 +00:00
leandro moved this to Done in phronCare: Tablero DEV on 2026-03-23 03:07:37 +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#15
No description provided.