Ако клиентът желае да върне само един или повече продукта (а не всички) от предварително запазен документ, можете да приложите функцията за връщане на стоки.
В случай че всички артикули (позиции) от предишна транзакция трябва да бъдат анулирани, т.е. цялата транзакция трябва да бъде отменена, ще намерите инструкции в статията „Имплементиране на анулиране (void) на документ“.
В някои държави е разрешено смесването на артикули за продажба с такива, които трябва да бъдат анулирани, в една транзакция. За подробности вижте свойството „fiscalCountryProperties“: „Поведение при връщане и продажба“.
За да конфигурирате позиция за връщане (ItemPosition), трябва да зададете следните свойства:
- DocumentPositionItem.CancellationPosition = true
- DocumentPositionItem.PositionReference = Препратка към документа на първоначалната позиция
Пример за код на 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);
}
Тази статия е преведена автоматично.
Коментари
0 коментара
Влезте в услугата, за да оставите коментар.