Class DebitNotesController
- Namespace
- KadicErp.WebApi.Controllers.FiscalAdjustments
- Assembly
- KadicErp.WebApi.dll
[ApiController]
[Authorize]
[RequireModule("ADJUSTMENT")]
[Route("api/fiscal-adjustments/debit-notes")]
public class DebitNotesController : ControllerBase
- Inheritance
-
objectControllerBaseDebitNotesController
Constructors
DebitNotesController(IMediator, IStringLocalizer<GeneralMessages>, IReceivablesQueryService)
public DebitNotesController(IMediator mediator, IStringLocalizer<GeneralMessages> localizer, IReceivablesQueryService queryService)
Parameters
mediatorIMediatorlocalizerIStringLocalizer<GeneralMessages>queryServiceIReceivablesQueryService
Methods
Create(CreateDebitNoteCommand)
Crear una Nota de Débito fiscal (ND). Genera NCF, ReceivableDocument y aumenta saldo del cliente.
[HttpPost]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_CREATE")]
public Task<IActionResult> Create(CreateDebitNoteCommand command)
Parameters
commandCreateDebitNoteCommand
Returns
- Task<IActionResult>
GetAll(GetDebitNotesPaginatedQuery)
Listar Notas de Débito con paginación y filtros opcionales. Filtros: customerId, branchId, fiscalStatus, issuedFrom, issuedTo.
[HttpGet]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetAll(GetDebitNotesPaginatedQuery query)
Parameters
queryGetDebitNotesPaginatedQuery
Returns
- Task<IActionResult>
GetAppliedCreditNotes(Guid, CancellationToken)
Obtener las Notas de Crédito aplicadas (que abonaron saldo) a una Nota de Débito.
[HttpGet("{id:guid}/applied-credit-notes")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetAppliedCreditNotes(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetById(Guid)
Obtener detalle completo de una Nota de Débito por su Id.
[HttpGet("{id:guid}")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetById(Guid id)
Parameters
idGuid
Returns
- Task<IActionResult>
GetByInvoice(Guid)
Obtener todas las Notas de Débito vinculadas a una factura base.
[HttpGet("by-invoice/{invoiceId:guid}")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetByInvoice(Guid invoiceId)
Parameters
invoiceIdGuid
Returns
- Task<IActionResult>
GetCustomerSummaries()
Obtener un resumen agrupado de notas de débito por cliente. Devuelve un registro por cliente con conteos y montos totales/abiertos.
[HttpGet("customer-summaries")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetCustomerSummaries()
Returns
- Task<IActionResult>
GetInvoicePaymentSummary(Guid)
Obtener el resumen de pagos de una factura para pre-llenar el formulario de Nota de Débito. Si la factura no tiene CXC: PaidAmount = GrandTotal, PendingBalance = 0. Si tiene CXC: PaidAmount y PendingBalance calculados desde los documentos de CXC.
[HttpGet("invoice-payment-summary/{invoiceId:guid}")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetInvoicePaymentSummary(Guid invoiceId)
Parameters
invoiceIdGuid
Returns
- Task<IActionResult>
GetReceipts(Guid, CancellationToken)
Obtener los recibos de pago aplicados a una Nota de Débito. Devuelve todos los pagos registrados contra el ReceivableDocument vinculado a la ND.
[HttpGet("{id:guid}/receipts")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetReceipts(Guid id, CancellationToken cancellationToken)
Parameters
idGuidcancellationTokenCancellationToken
Returns
- Task<IActionResult>
GetSummary(GetDebitNoteSummaryQuery)
Totales para las tarjetas KPI del listado (Registradas, Emitidas, Pagadas, Monto acumulado). Calculados sobre el total de filas que matchean los filtros, no sobre la página actual.
[HttpGet("summary")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VIEW")]
public Task<IActionResult> GetSummary(GetDebitNoteSummaryQuery query)
Parameters
queryGetDebitNoteSummaryQuery
Returns
- Task<IActionResult>
Issue(Guid)
Emitir una Nota de Débito borrador. Genera NCF y crea el documento de CXC.
[HttpPost("{id:guid}/issue")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_CREATE")]
public Task<IActionResult> Issue(Guid id)
Parameters
idGuid
Returns
- Task<IActionResult>
Update(Guid, UpdateDebitNoteCommand)
Actualizar una Nota de Débito en estado Borrador. Permite modificar motivo, código, tipo de cambio y lÃneas mientras el documento es un borrador.
[HttpPut("{id:guid}")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_UPDATE")]
public Task<IActionResult> Update(Guid id, UpdateDebitNoteCommand command)
Parameters
idGuidcommandUpdateDebitNoteCommand
Returns
- Task<IActionResult>
Void(Guid)
Anular una Nota de Débito borrador.
[HttpPatch("{id:guid}/void")]
[Authorize(Policy = "ADJUSTMENT_DEBIT_NOTE_VOID")]
public Task<IActionResult> Void(Guid id)
Parameters
idGuid
Returns
- Task<IActionResult>