Fecha de cobro de un documento
Por omisión, iDynamics Commissions consulta los movimientos de cliente asociados a una factura para comprobar la fecha en la que el cliente pagó el importe correspondiente. En el caso de la localización española, en particular, la extensión iDynamics Commissions (ES) se encarga de tener en cuenta los posibles efectos generados por la factura, y los tiene en cuenta de manera que:
- Una factura se dará como cobrada cuando todos sus movimientos asociados estén cerrados.
- La fecha prevista de cobro corresponderá a la del último movimiento pendiente de cobrar.
Personalizar la fecha de cobro
Cada vez que iDynamics Commissions necesita obtener la fecha de cobro de un documento y su estado (si está cobrado o no), se lanza el siguiente evento en la codeunit IDPCOS Doc. Collection Helper.
local procedure OnBeforeGetSalesDocPaymentDateAndStatus(PostedSalesDocType: Enum "IDPCOS Posted Sales Doc. Type"; DocNo: Code[20]; DelayPaymentMargin: DateFormula; var PaymentDate: Date; var Status: Enum "IDPCOS Payment Status"; var Handled: Boolean)
Los parámetros del evento son los siguientes:
- PostedSalesDocType. Nos permite saber si el documento es una factura o un abono.
- DocNo. El número de factura o abono del que queremos conocer el estado de cobro.
- DelayPaymentMargin. El estado del documento puede ser cobrado, pendiente, o impagado. Por omisión, el salto entre pendiente e impagado ocurre cuando la fecha actual supera en esta fórmula a la fecha prevista de cobro.
- PaymentDate. Asignando valor a esta variable se puede indicar una fecha de cobro personalizada.
- Status. Si se personaliza la fecha de cobro, es necesario indicar también el estado en que se encuentra el documento.
- Handled. Si se asigna a verdadero, la aplicación cogerá los valores indicados en las variables PaymentDate y Status.
En caso de ser necesario, también existe otro evento que se puede utilizar para personalizar la fecha vencimiento (la fecha esperada de cobro, al fin y al cabo), lanzado por la misma codeunit que el evento anterior:
local procedure OnBeforeGetSalesDocDueDate(PostedSalesDocType: Enum "IDPCOS Posted Sales Doc. Type"; DocNo: Code[20]; var DueDate: Date; var Handled: Boolean)
En este caso, el evento recibe los dos valores que permiten identificar al documento de venta, y las variables DueDate y Handled se pueden modificar para indicar una fecha distinta de la obtenida de manera estándar.