Si un cliente solo desea devolver uno o varios productos (no todos) de un documento almacenado previamente, puede implementar la función de devolución de mercancías.
En caso de que deban cancelarse todas las partidas (posiciones) de una transacción anterior, es decir, si debe anularse toda la transacción, encontrará instrucciones en el artículo «Implementación de la cancelación (anulación) de un documento».
En algunos países, el sistema permite combinar artículos de venta con aquellos que se van a cancelar en una misma transacción. Para más detalles, consulte la propiedad «fiscalCountryProperties»: «Comportamiento de devolución y venta».
Para configurar una posición de devolución (ItemPosition), debe establecer las siguientes propiedades:
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Referencia al documento de la posición original
Ejemplo de código en C#
public void AddCancelPosition(Document document, DocumentPositionItem cancelPosition, string refStoreNumber, string refTerminalNumber, string refDocumentNr, DateTime refBookDate)
{
// check parameter
if (document == null) throw new ArgumentNullException(nameof(document));
if (cancelPosition == null) throw new ArgumentNullException(nameof(cancelPosition));
if (string.IsNullOrEmpty(refStoreNumber)) throw new ArgumentNullException(nameof(refStoreNumber));
if (string.IsNullOrEmpty(refTerminalNumber)) throw new ArgumentNullException(nameof(refTerminalNumber));
if (string.IsNullOrEmpty(refDocumentNr)) throw new ArgumentNullException(nameof(refDocumentNr));
if (document.BookDate < refBookDate) throw new ArgumentException("Referenced book date must be greater than document date.");
// add more checks if necessary
// revert the position (can also be done by the pos software)
cancelPosition.Revert();
// set cancel flag
cancelPosition.CancellationPosition = true;
// set reference
cancelPosition.PositionReference = new DocumentPositionReference()
{
DocumentBookDate = refBookDate,
DocumentNumber = refDocumentNr,
ReferenceType = ReferenceType.Cancellation,
StoreNumber = refStoreNumber,
TerminalNumber = refTerminalNumber
};
document.Positions.Add(cancelPosition);
}
Este artículo ha sido traducido automáticamente.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.