Table of Contents

Class DebitNotesController

Namespace
KadicErp.WebApi.Controllers.FiscalAdjustments
Assembly
KadicErp.WebApi.dll
[ApiController]
[Authorize]
[Route("api/fiscal-adjustments/debit-notes")]
public class DebitNotesController : ControllerBase
Inheritance
object
ControllerBase
DebitNotesController

Constructors

DebitNotesController(IMediator, IStringLocalizer<GeneralMessages>, IReceivablesQueryService)

public DebitNotesController(IMediator mediator, IStringLocalizer<GeneralMessages> localizer, IReceivablesQueryService queryService)

Parameters

mediator IMediator
localizer IStringLocalizer<GeneralMessages>
queryService IReceivablesQueryService

Methods

ActivateReasonCode(Guid)

[HttpPatch("reason-codes/{id:guid}/activate")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_REASON_CODES_ACTIVATE")]
public Task<IActionResult> ActivateReasonCode(Guid id)

Parameters

id Guid

Returns

Task<IActionResult>

Create(CreateDebitNoteCommand)

Crear una Nota de Débito fiscal (ND). Genera NCF, ReceivableDocument y aumenta saldo del cliente.

[HttpPost]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_CREATE")]
public Task<IActionResult> Create(CreateDebitNoteCommand command)

Parameters

command CreateDebitNoteCommand

Returns

Task<IActionResult>

CreateReasonCode(CreateDebitNoteReasonCodeCommand)

[HttpPost("reason-codes")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_CREATE")]
public Task<IActionResult> CreateReasonCode(CreateDebitNoteReasonCodeCommand command)

Parameters

command CreateDebitNoteReasonCodeCommand

Returns

Task<IActionResult>

DeactivateReasonCode(Guid)

[HttpPatch("reason-codes/{id:guid}/deactivate")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_REASON_CODES_DEACTIVATE")]
public Task<IActionResult> DeactivateReasonCode(Guid id)

Parameters

id Guid

Returns

Task<IActionResult>

DeleteReasonCode(Guid)

[HttpDelete("reason-codes/{id:guid}")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_CREATE")]
public Task<IActionResult> DeleteReasonCode(Guid id)

Parameters

id Guid

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 = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetAll(GetDebitNotesPaginatedQuery query)

Parameters

query GetDebitNotesPaginatedQuery

Returns

Task<IActionResult>

GetById(Guid)

Obtener detalle completo de una Nota de Débito por su Id.

[HttpGet("{id:guid}")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetById(Guid id)

Parameters

id Guid

Returns

Task<IActionResult>

GetByInvoice(Guid)

Obtener todas las Notas de Débito vinculadas a una factura base.

[HttpGet("by-invoice/{invoiceId:guid}")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetByInvoice(Guid invoiceId)

Parameters

invoiceId Guid

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 = "RECEIVABLES_DEBIT_NOTES_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 = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetInvoicePaymentSummary(Guid invoiceId)

Parameters

invoiceId Guid

Returns

Task<IActionResult>

GetReasonCodeById(Guid)

[HttpGet("reason-codes/{id:guid}")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetReasonCodeById(Guid id)

Parameters

id Guid

Returns

Task<IActionResult>

GetReasonCodes(bool)

[HttpGet("reason-codes")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetReasonCodes(bool adminMode = false)

Parameters

adminMode bool

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 = "RECEIVABLES_DEBIT_NOTES_VIEW")]
public Task<IActionResult> GetReceipts(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

UpdateReasonCode(Guid, UpdateDebitNoteReasonCodeCommand)

[HttpPut("reason-codes/{id:guid}")]
[Authorize(Policy = "RECEIVABLES_DEBIT_NOTES_CREATE")]
public Task<IActionResult> UpdateReasonCode(Guid id, UpdateDebitNoteReasonCodeCommand command)

Parameters

id Guid
command UpdateDebitNoteReasonCodeCommand

Returns

Task<IActionResult>