Caso um cliente pretenda devolver apenas um ou mais produtos (e não todos) de um documento previamente guardado, pode implementar a função de devolução de mercadorias.
No caso de todos os itens (posições) de uma transação anterior terem de ser cancelados, ou seja, de uma transação inteira ter de ser revertida, encontrará instruções no artigo «Implementação do cancelamento (anulação) de documentos».
Em alguns países, é permitido misturar itens de venda com aqueles que devem ser cancelados numa única transação. Para mais detalhes, consulte a propriedade «fiscalCountryProperties»: «Comportamento de devolução e venda».
Para configurar uma posição de devolução (ItemPosition), deve definir as seguintes propriedades:
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Referência ao documento da posição de origem
Exemplo de código em 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 artigo foi traduzido automaticamente.
Comentários
0 comentários
iniciar sessão para comentar.