Se un cliente desidera restituire solo uno o più prodotti (non tutti) di un documento precedentemente archiviato, è possibile implementare la funzione di reso merci.
Nel caso in cui si debbano annullare tutte le voci (posizioni) di una transazione precedente, ovvero si debba stornare l’intera transazione, si faccia riferimento all’articolo «Implementazione dell’annullamento (void) di un documento».
In alcuni Paesi è consentito combinare in un’unica transazione articoli in vendita con quelli da annullare. Per ulteriori dettagli, consultare la proprietà «fiscalCountryProperties»: «Comportamento in caso di reso e vendita».
Per configurare una posizione di reso (ItemPosition) è necessario impostare le seguenti proprietà:
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Riferimento al documento della posizione originaria
Esempio di codice 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);
}
Questo articolo è stato tradotto automaticamente.
Commenti
0 commenti
Accedi per aggiungere un commento.