Dacă un client dorește să returneze doar unul sau mai multe produse (nu toate) dintr-un document stocat anterior, puteți implementa funcția de returnare a mărfurilor.
În cazul în care toate articolele (pozițiile) unei tranzacții anterioare trebuie anulate, adică o tranzacție întreagă trebuie anulată, veți găsi instrucțiuni în articolul „Implementarea anulării (void) documentului”.
În unele țări, este permisă combinarea articolelor de vânzare cu cele care urmează să fie anulate într-o singură tranzacție. Pentru detalii, consultați proprietatea „fiscalCountryProperties”: „Comportamentul returnării și vânzării”.
Pentru a configura o poziție de retur (ItemPosition), trebuie să setați următoarele proprietăți:
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Referință la documentul poziției de origine
Exemplu de cod 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);
}
Acest articol a fost tradus automat.
Comentarii
0 comentarii
Vă rugăm să vă autentificați pentru a lăsa un comentariu.