All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 6m55s
- Implement exportfiltered endpoint - Generate Excel using XLSXExportBase (EPPlus) - Map Delivery Note summary fields - Parse ExtraInfoJson into business columns (Professional, Institution, Patient, SurgeryDate) - Format dates for Excel - Keep export at header level (no items) Closes #46
63 lines
2.2 KiB
C#
63 lines
2.2 KiB
C#
using Domain.Dtos.Sales;
|
|
using Domain.Generics;
|
|
|
|
/// <summary>
|
|
/// Servicio de dominio para la gestión de consultas de Delivery Note (Remito Ventas).
|
|
/// Encapsula el acceso a datos y expone operaciones de lectura para la capa superior.
|
|
/// </summary>
|
|
public interface IDeliveryNoteDom
|
|
{
|
|
/// <summary>
|
|
/// Busca Delivery Notes con filtros y paginación.
|
|
/// </summary>
|
|
Task<PagedResult<DeliveryNoteSummaryDto>> SearchAsync(
|
|
int? customerId,
|
|
string? customerText,
|
|
string? deliveryNoteNumber,
|
|
int? quoteId,
|
|
string? quoteNumber,
|
|
DateTime? issueDateFrom,
|
|
DateTime? issueDateTo,
|
|
string? status,
|
|
int page = 1,
|
|
int pageSize = 50);
|
|
|
|
/// <summary>
|
|
/// Exporta a Excel los Delivery Notes filtrados.
|
|
/// </summary>
|
|
Task<byte[]> ExportFilteredToExcelAsync(DeliveryNoteSearchParams searchParams);
|
|
|
|
/// <summary>
|
|
/// Obtiene un Delivery Note por su identificador único.
|
|
/// </summary>
|
|
/// <param name="id">Identificador interno del Delivery Note.</param>
|
|
/// <returns>
|
|
/// El DTO <see cref="DeliveryNoteDto"/> si existe; en caso contrario, null.
|
|
/// </returns>
|
|
Task<DeliveryNoteDto?> GetDtoByIdAsync(int id);
|
|
|
|
/// <summary>
|
|
/// Obtiene un Delivery Note a partir de su número de documento.
|
|
/// </summary>
|
|
/// <param name="deliveryNoteNumber">Número del Delivery Note (ej: DN-00000001).</param>
|
|
/// <returns>
|
|
/// El DTO <see cref="DeliveryNoteDto"/> si existe; en caso contrario, null.
|
|
/// </returns>
|
|
Task<DeliveryNoteDto?> GetDtoByDeliveryNoteNumberAsync(string deliveryNoteNumber);
|
|
|
|
/// <summary>
|
|
/// Obtiene todos los Delivery Notes asociados a un presupuesto (Quote).
|
|
/// </summary>
|
|
/// <param name="quoteId">Identificador del presupuesto relacionado.</param>
|
|
/// <returns>
|
|
/// Colección de <see cref="DeliveryNoteDto"/> asociadas al presupuesto.
|
|
/// Puede estar vacía si no existen registros.
|
|
/// </returns>
|
|
Task<IEnumerable<DeliveryNoteDto>> GetDtosByQuoteIdAsync(int quoteId);
|
|
|
|
/// <summary>
|
|
/// Valida y prepara la emisión de un Delivery Note.
|
|
/// </summary>
|
|
Task<DeliveryNoteCreateResponse> CreateAndIssueDeliveryNoteAsync(DeliveryNoteCreateRequest request);
|
|
}
|