Si un client souhaite uniquement retourner un ou plusieurs produits (et non la totalité) d’un document précédemment enregistré, vous pouvez mettre en œuvre la fonction de retour de marchandises.
Si l’ensemble des articles (postes) d’une transaction antérieure doit être annulé, c’est-à-dire si une transaction entière doit être contre-passée, veuillez consulter l’article « Mise en œuvre de l’annulation (void) d’un document ».
Dans certains pays, il est autorisé de mélanger des articles vendus et des articles devant être annulés au sein d’une même transaction. Pour plus de détails, consultez la propriété « fiscalCountryProperties » : « Comportement en matière de retour et de vente ».
Pour configurer un poste de retour (ItemPosition), vous devez définir les propriétés suivantes :
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Référence au document de la position d’origine
Exemple de code 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);
}
Cet article a été traduit automatiquement.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.