Настоящата статия разглежда обекта „positions“ в рамките на обекта „Document“ (обект „Document“).
Пълно описание на RetailForce DOM (Document Object Model), както и описание на отделните елементи, можете да намерите в раздела за изтегляне на RetailForce website (Object model documentation.pdf) в съответната директория с версии.
Обектът „positions“ съдържа информация за съответната позиция на документа.
Обектът „positions“ се състои от:
- DocumentPositionBase – съдържа основна информация за позицията (независимо от типа на съответната позиция)
- Информация, специфична за типа на позицията – в зависимост от типа на позицията „type“ (DocumentPositionType) трябва да се задава различно съдържание (типът на позицията определя съдържанието на позицията).
DocumentPositionsBase
Следващият обект съдържа примерни данни.
"positions": [
{
"positionNumber": 0,
"positionReference": {
"positionNumber": 0,
"referenceType": "[0] = Cancellation",
"storeNumber": "string",
"terminalNumber": "string",
"documentType": "[0] = Receipt",
"documentNumber": "string",
"documentNumberSeries": "string",
"fiscalDocumentNumber": 0,
"documentGuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"documentId": "string",
"documentBookDate": "2023-05-03T11:20:40.057+01:00",
"returnReasonType": "userMistake",
"returnReasonText": "string"
},
"cancellationPosition": true,
"deletedPosition": false,
"type": "[0] = Item",
"additionalFields": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createDate": "2023-05-03T11:20:40.057+01:00",
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],Обектът DocumentPositionsBase съдържа следната информация.
Информация в колоната „Type“:
- M ... задължително / изисквано
- M* ... задължително / изисква се в определени държави или при определени условия
- R ... препоръчително
- O... по избор
| Елементи | Тип | Описание | |
| PositionNumber | M |
Портовен номер на позицията.
Внимание:
Номерът на първата позиция винаги е „0“!
|
|
| positionReference | O | Препратка към друга позиция в документа. Еквивалентно на documentReference. | |
| {...} | O | ||
| cancellationPosition | M | „true“, ако тази позиция отменя позиция от друг документ; в противен случай „false“. | |
| DeletedPosition | O | "true", ако тази позиция е била изтрита; в противен случай "false". | |
| type | M |
определя типа на позицията „type“ (DocumentPositionType). Enum:
Обясненията на отделните типове (DocumentPositionType) можете да намерите след тази таблица. |
|
| AdditionalFields | O | ||
| {...} | |||
| CreateDate | M | Време, когато е създадена позицията. | |
| ExternalIdentifier | O | Външен ID (от предишната система), за вътрешни цели, без значение за фискализацията. | |
| user | O | Данни за потребителя (на касовия апарат), който е въвел съответния артикул. | |
| {...} | |||
| SalesPerson | O | Подробности за продавача на съответната позиция. | |
| {...} | |||
| FiscalAdditionalFields | O | ||
DocumentPositionType
[0] = Артикул
Типът „артикул“ (DocumentPositionItem) представлява конкретен артикул за продажба (стока или услуга).
Пример за DocumentPositionItem:
positions": [
{
"itemCaption": "Prime rib steak house style",
"itemShortCaption": "PrimeRibSpec",
"itemSerialNumber": "string",
"discounts": [
{
"discountValue": 1.6900,
"caption": "Regular customer discount",
"discountOrder": 0,
"type": 1,
"typeValue": 10.00,
"promotionKeys": [],
"identifier": null
}
],
"type": 0,
"useSubItemVatCalculation": false,
"subItems": [],
"inHouse": true,
"itemGroupId": "1000",
"itemGroupCaption": "mains",
"costPrice": null,
"itemDateOfEntry": null,
"quantity": 1.0,
"quantityUnit": {
"id": null,
"isoCode": "1"
}
"itemId": "1028",
"itemType": "[0] = Article",
"baseNetValue": 14.08,
"baseGrossValue": 16.90,
"baseTaxValue": 2.82,
"baseTaxValue2": 0,
"gtin": "8718274490558",
"businessTransactionType": 0,
"itemTypeClassification": "[1] = AlcoholicBeverage",
"vatIdentification": 1,
"vatPercent": 20.00,
"vatPercent2": 5,
"additionalTax": {
"additionalTaxType": "alcohol",
"additionalTaxTypeIdentification": "string",
"taxPercent": 0,
"taxValue": 0
},
"netValue": 12.68,
"grossValue": 15.21,
"taxValue": 2.53,
"taxValue2": 0,
"accountingIdentifier": null,
"itemTaxType": null,
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],Обектът DocumentPositionItem съдържа следната информация.
Информация в колоната „Тип“:
- M ... задължително / изисквано
- M* ... задължително / изисквано в определени държави или при определени условия
- R ... препоръчително
- O... по избор
| Елементи | Тип | Описание | |
| ItemCaption | М | Означение на артикула, описание на услугата | |
| ItemShortCaption | O | Кратко наименование на позицията, използвано например при ограничения в дължината на символите, като при фискалните принтери. | |
| ItemSerialNumber | M* |
Сериен номер на артикула. Данни за държавата:
|
|
| отстъпки | Подробности за отстъпки, намаления на цените и др. | ||
| DiscountValue | M |
Сума на отстъпката / размер на намалението
Внимание:
ако DiscountType [1] = discount, сумата на отстъпката трябва да се въведе с 4 знака след десетичната запетая!
|
|
| caption | R |
Означение на отстъпката Данни за страната:
|
|
| DiscountOrder | M* |
Показва реда, по който се изчислява отстъпката. Първата отстъпка, която се взема предвид, има стойност 0. Трябва да бъде посочено, ако към даден артикул се прилагат няколко отстъпки. |
|
| type | M |
Тип на отстъпката Enum:
|
|
| TypeValue | M |
Стойност на отстъпката (сума на намалението) при [0] = Отстъпка: DiscountValue (=> DiscountValue = TypeValue) при [1] = Отстъпка: процентът (например 10% отстъпка) |
|
| PromotionKeys | O | Ключове за промоция – ако се използват (например код на ваучер) | |
| идентификатор | O | Допълнителен идентификатор за отстъпката (може да се използва например за групиране на отстъпките по видове отстъпки). | |
| тип | M | Тип позиция (DocumentPositionType) | |
| UseSubItemVatCalculation | O | „true“, ако изчислението на Vat за подпозициите (SubItems) трябва да бъде прехвърлено, а Vat на родителската позиция да бъде игнорирано; в противен случай „false“. | |
| SubItems | O | Подробности за SubItems. Виж: DocumentPositionType [1] = SubItem | |
| [...] | |||
| inhouse | O | Показва дали продажбата е вътрешна или външна (true / false). | |
| ItemGroupId | M* |
Индикатор за група артикули Данни за държавата:
|
|
| ItemGroupCaption | O | Означение на групата артикули | |
| CostPrice | O/M* |
Единична цена на артикула Данни за държавата:
|
|
| itemDateOfEntry | M* |
Време на създаване на артикула. Данни за държавата:
|
|
| количество | M | Информация за количеството на артикула | |
| QuantityUnit | M* |
Спецификация на мерната единица Данни за държавата:
|
|
| ID | M* |
Посочване на единицата за измерване. Подробности за държавата:
|
|
| isoCode | M* |
Стандартна мерна единица съгласно кода ISO/UCUM. За повече информация вижте статията, към която има линк. | |
| ItemId | M | ID на артикула | |
| ItemType | M* |
Описва типа на елемента: стоки или услуги.
Данни за държавата:
|
|
| BaseNetValue | M* |
Нетна обща сума (без Vat) преди отстъпка или надбавка
Внимание:
(Нетната) сума на реда/позицията, а НЕ на артикула. Ако количеството = 2, тогава BaseNetValue също е цената на артикула x 2!
|
|
| BaseGrossValue | M* |
Брутна обща сума (вкл. Vat) преди отстъпка или надбавка
Внимание:
(Брутна) сума на реда/позицията, НЕ на артикула. Ако количеството = 2, тогава BaseGrossValue също е цената на артикула x 2!
|
|
| BaseTaxValue | M* |
Обща сума по Vat (или сума по първата данъчна ставка) преди отстъпка или надбавка
Внимание:
(Vat) сумата на реда/позицията, НЕ на артикула. Ако количеството = 2, тогава BaseTaxValue също е цената на артикула x 2!
Данни за държавата:
|
|
| BaseTaxValue2 | M* |
Сума на втората данъчна ставка на позицията преди отстъпка/доплащане. Подробности за държавата:
|
|
| GTIN | O |
Глобален номер на търговската единица (GTIN) Данни за държавата:
|
|
| BusinessTransactionType | M |
Вид на бизнес транзакцията. Enum:
|
|
| ItemTypeClassification |
ItemTypeClassification може да се използва за прилагане на допълнителна класификация към елемент. ItemTypeClassification може да се зададе само ако свойството „ItemType“ е зададено на „[0] - Article“ или „ItemType“: 0. Подробна информация за свойството „ItemTypeClassification“ можете да намерите в статията, към която има линк. Налични са следните класификации.
Подробности за държавата:
|
||
| VatIdentification | M |
ID на ставката на ДДС. Може да се извлече чрез GET /api/v1/information/client/ {clientId}/getVatIdentification, като се посочи ставката на ДДС за съответната държава. ставката на ДДС за съответната държава. |
|
| VatPercent | M |
Vat ставка в проценти или първата данъчна ставка, приложима за артикула в съответната държава. Данни за държавата:
|
|
| VatPercent2 | M* |
Втора данъчна ставка, приложима за артикула, изразена в проценти в съответната държава. Данни за държавата:
|
|
| NetValue | M |
Нетна обща стойност на позицията (без отстъпки / плюс добавки) – без Vat. Трябва винаги да се посочва. |
|
| GrossValue | M |
Брутна обща стойност на позицията (без отстъпки / с добавки) – с Vat. Трябва винаги да се посочва. |
|
| TaxValue | M |
Обща сума с Vat (или сумата на първата данъчна ставка) на позицията (без евентуални отстъпки / плюс надбавки) Трябва винаги да се посочва. Данни за държавата:
|
|
| TaxValue2 | M* |
Сума от втората данъчна ставка на артикула след отстъпка/доплащане. Данни за държавата:
|
|
| AccountingIdentifier | O | Допълнителен идентификатор за счетоводни цели (счетоводен интерфейс) | |
| ItemTaxType | M* |
Данъчен тип на позицията:
Данни за държавата:
|
|
| PositionNumber | M | Номер на позицията, започващ с 0 | |
| positionReference | O | Посочване на номер на позиция, към която трябва да се направи препратка | |
| cancellationPosition | O | „true“, ако тази позиция отменя позиция от друг документ; в противен случай „false“ | |
| CreateDate | O | Време на записване на позицията | |
[1] = Подпозиция
„Подпозициите“ (DocumentPositionSubItem) дават възможност да се опише съставът на продадените продукти или описанията на продуктовите групи на ниво позиция.
Пример: Меню = Кола и хамбургер.
SubItems имат обяснителен характер и не е задължително да се използват. Те също така нямат влияние върху цената и продажбите / данъка върху добавената стойност.
[2] = Текст
Използва се за преобразуване на позицията на текст или Barcode в документа.
Пример за DocumentPositionText:
positions": [
{
"type": 2,
"text": "Example text",
"barcodeType": code128,
"barcode": "Example text",
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],Обектът „DocumentPositionText“ съдържа следната информация.
Информация в колоната „Type“:
- M ... задължително / изисквано
- M* ... задължително / изисква се в определени държави или при определени условия
- R ... препоръчително
- O... по избор
| Елементи | Тип | Описание | |
| тип | М | Тип на позициите (DocumentPositionType) | |
| текст | O |
Поле за свободен текст Данни за страната:
|
|
| barcodeType | O |
Посочване на типа на Barcode Enum:
|
|
| Barcode | O | Данни за Barcode | |
| PositionNumber | M | Номер на позицията, започващ от 0 | |
[3] = Резервация
Позициите за резервации (DocumentPositionBooking) се използват за депозити, тегления, както и за продажби на многофункционални ваучери (PayIn, payOut, MultiPurposeVoucher,...).
Пример за DocumentPositionBooking:
positions": [
{
"type": 3,
"caption": "Depositg",
"identifier": null,
"businessTransactionType": 11,
"payOutType": null,
"vatIdentification": 4,
"vatPercent": 0.00,
"netValue": 20.00,
"grossValue": 20.00,
"taxValue": 0.00,
"accountingIdentifier": null,
"itemTaxType": null,
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],Обектът DocumentPositionBooking съдържа следната информация.
Информация в колоната „Type“:
- M ... задължително / изисквано
- M* ... задължително / изисквано в определени държави или при определени условия
- R ... препоръчително
- O... по избор
| Елементи | Тип | Описание | |
| тип | М | Тип на позициите (DocumentPositionType) | |
| caption | M | Описание на позицията на резервацията | |
| идентификатор | O | Допълнителен ID на счетоводната операция | |
| BusinessTransactionType | M |
Тип на бизнес транзакцията. Enum:
|
|
| PayOutType | M* |
Посочва типа на изплащането. Задължително в някои държави. Възможни стойности:
Данни за държавата:
Забележка:
Ново от DOM v1.2.0 / Client v1.7.6
|
|
| VatIdentification | M |
Идентификационен ID на Vat. Може да се извлече чрез GET /api/v1/information/client/ {clientId}/getVatIdentification, като се посочи ставката на ДДС за съответната държава. |
|
| VatPercent | M | Ставка на Vat в проценти | |
| NetValue | M |
Нетна обща стойност на позицията (без отстъпки) – без Vat. Трябва винаги да се посочва. |
|
| GrossValue | M |
Брутна обща стойност на позицията (без отстъпки) – с Vat. Трябва винаги да се посочва. |
|
| TaxValue | M |
Обща стойност с Vat на позицията (без отстъпки) Трябва винаги да се посочва. |
|
| AccountingIdentifier | O | Допълнителен идентификатор за счетоводни цели (счетоводен интерфейс) | |
| ItemTaxType | M* |
Данъчен тип на позицията:
Данни за държавата:
|
|
| PositionNumber | M | Номер на позицията, започващ с 0 | |
| positionReference | O | Посочване на номера на елемента, към който трябва да се направи препратка | |
| cancellationPosition | O | „true“, ако тази позиция отменя позиция от друг документ; в противен случай „false“. | |
| DeletedPosition | O | "true", ако тази позиция е била изтрита; в противен случай "false". | |
| CreateDate | O | Време на записване на позицията | |
[9] = Междинна сума
Междинна сума на позицията
[10] = Общо
Позиция „Общо“. Ако се използва DocumentPositionTotal, тя трябва винаги да бъде последната позиция в документа (най-високият PositionNumber).
Пример за DocumentPositionTotal:
positions": [
{
"type": 10,
"rounding": null,
"baseValue": 200.00,
"value": "200.00",
"discounts": [
{
"discountValue": 1.6900,
"caption": "Regulars discount",
"discountOrder": 0,
"type": 1,
"typeValue": 10.00,
"promotionKeys": [],
"identifier": null
}
],
"caption": "Total",
"positionNumber": 0,
"positionReference": null,
"cancellationPosition": false,
"deletedPosition": false,
"additionalFields": {},
"createDate": null,
"externalIdentifier": [
"string"
],
"user": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"salesPerson": {
"id": "string",
"caption": "string",
"firstName": "string",
"lastName": "string",
"taxNumber": "string"
},
"FiscalAdditionalFields": {}
}
],Обектът DocumentPositionTotal съдържа следната информация.
Информация в колоната „Type“:
- M ... задължително / изисквано
- M* ... задължително / изисквано в определени държави или при определени условия
- R ... препоръчително
- O... по избор
| Елементи | Тип | Описание | |
| тип | М | Тип на позициите (DocumentPositionType) | |
| закръгляване | O |
Прилага се закръгляване. Ако сумата на позициите (брутна стойност) не е равна на сумата за плащане. Например 0,01 би позволило разлики при закръгляването от +/-0,01 Забележка: Моля, използвайте внимателно. Високите стойности ще деактивират валидирането на сумата за плащане / брутната стойност на документа |
|
| BaseValue | M* | Базова сума на позицията преди прилагане на отстъпки (само ако се прилагат отстъпки) | |
| value | M | Стойността на позицията, включително отстъпките. | |
| отстъпки | Подробности за отстъпките, намаленията на цената и др. | ||
| DiscountValue | M |
Сума на отстъпката / размер на рабата
Внимание:
ако DiscountType [1] = discount, сумата на отстъпката трябва да се въведе с 4 знака след десетичната запетая!
|
|
| caption | O | Означение на отстъпката | |
| DiscountOrder | M* |
Показва реда, по който се изчислява отстъпката. Първата отстъпка, която се взема предвид, има стойност 0. Трябва да бъде посочено, ако към даден артикул се прилагат няколко отстъпки. |
|
| type | M |
Тип отстъпка Enum:
|
|
| TypeValue | M |
Стойност на отстъпката (сума на намалението) при [0] = Отстъпка: DiscountValue при [1] = Отстъпка: процентът (например 10% отстъпка) |
|
| PromotionKeys | O | Ключове за промоция – ако се използват (например код на ваучер) | |
| идентификатор | O | Допълнителен идентификатор за отстъпката (може да се използва например за групиране на отстъпките по видове). | |
| caption | O | Означението на позицията | |
| PositionNumber | M | Номер на длъжността, започващ от 0 | |
| positionReference | O | Посочване на номер на позиция, към която трябва да се направи препратка | |
| cancellationPosition | O | „true“, ако тази позиция отменя позиция от друг документ; в противен случай „false“. | |
| DeletedPosition | O | "true", ако тази позиция е била изтрита; в противен случай "false". | |
| CreateDate | O | Време на записване на позицията | |
Тази статия е преведена автоматично.
Коментари
0 коментара
Влезте в услугата, за да оставите коментар.