Acest articol tratează obiectul „positions” din cadrul obiectului „Document” (obiectul Document).
O descriere completă a modelului RetailForce DOM (Document Object Model) și o descriere a elementelor individuale pot fi găsite în secțiunea de descărcări a RetailForce website (Documentația modelului de obiecte.pdf) în directorul versiunii respective.
Obiectul „positions” conține informații despre poziția respectivă a documentului.
Obiectul „poziții” este alcătuit din:
- DocumentPositionBase – conține informații de bază despre poziție (indiferent de tipul poziției respective)
- Informații specifice tipului de poziție – în funcție de „tipul” poziției (DocumentPositionType), trebuie specificate conținuturi diferite (tipul poziției definește conținutul poziției).
DocumentPositionsBase
Următorul obiect conține date de exemplu.
"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": {}
}
],Obiectul DocumentPositionsBase conține următoarele informații.
Informații din coloana „Type”:
- M ... obligatoriu / necesar
- M* ... obligatoriu / necesar în anumite țări sau în anumite condiții
- R ... recomandat
- O... opțional
| Elemente | Tip | Descriere | |
| PositionNumber | M |
Numărul de ordine al poziției.
Atenție:
Numărul primei poziții este întotdeauna „0”!
|
|
| positionReference | O | Referință la o altă poziție din document. Echivalent cu documentReference. | |
| {...} | O | ||
| cancellationPosition | M | „true” dacă această poziție anulează o poziție dintr-un alt document; în caz contrar, „false”. | |
| DeletedPosition | O | „true” dacă această poziție a fost ștersă; în caz contrar, „false”. | |
| tip | M |
specifică tipul de poziție „type” (DocumentPositionType). Enum:
Explicații privind tipurile individuale (DocumentPositionTypes) pot fi găsite după acest tabel. |
|
| AdditionalFields | O | ||
| {...} | |||
| CreateDate | M | Ora la care a fost creată poziția. | |
| ExternalIdentifier | O | ID extern (din sistemul anterior), pentru uz intern, fără relevanță pentru fiscalizare. | |
| user | O | Detalii despre utilizatorul (casei de marcat) care a introdus articolul respectiv. | |
| {...} | |||
| SalesPerson | O | Detalii despre personalul de vânzări din funcția respectivă. | |
| {...} | |||
| FiscalAdditionalFields | O | ||
DocumentPositionType
[0] = Articol
Tipul „articol” (DocumentPositionItem) reprezintă un articol specific de vânzare (bunuri sau servicii).
Exemplu de 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": {}
}
],Obiectul DocumentPositionItem conține următoarele informații.
Informații din coloana „Tip”:
- M ... obligatoriu / necesar
- M* ... obligatoriu / necesar în anumite țări sau în anumite condiții
- R ... recomandat
- O... opțional
| Elemente | Tip | Descriere | |
| ItemCaption | M | Denumirea articolului, descrierea serviciului | |
| ItemShortCaption | O | Denumirea scurtă a articolului, utilizată, de exemplu, atunci când există restricții privind lungimea caracterelor, cum ar fi în cazul imprimantelor fiscale. | |
| ItemSerialNumber | M* |
Numărul de serie al articolului. Detalii privind țara:
|
|
| reduceri | Detalii privind reducerile, scăderile de preț etc. | ||
| DiscountValue | M |
Suma reducerii / valoarea rabatului
Atenție:
dacă DiscountType [1] = discount, suma reducerii trebuie introdusă cu 4 zecimale!
|
|
| caption | R |
Denumirea reducerii Detalii privind țara:
|
|
| DiscountOrder | M* |
Indică ordinea în care se calculează reducerea. Prima reducere luată în considerare are valoarea 0. Trebuie specificat dacă se aplică mai multe reduceri unui articol. |
|
| tip | M |
Tipul reducerii Enum:
|
|
| TypeValue | M |
Valoarea reducerii (suma reducerii) în cazul [0] = Reducere: DiscountValue (=> DiscountValue = TypeValue) când [1] = Reducere: procentul (de ex. reducere de 10%) |
|
| PromotionKeys | O | Chei de promoție – dacă sunt utilizate (de ex. cod de voucher) | |
| identificator | O | Identificator suplimentar pentru reducere (poate fi utilizat, de exemplu, pentru gruparea reducerilor în tipuri de reduceri). | |
| tip | M | Tip de poziție (DocumentPositionType) | |
| UseSubItemVatCalculation | O | „true” dacă se preia calculul TVA-ului pentru subarticole (SubItems) și se ignoră TVA-ul articolului părinte; în caz contrar, „false”. | |
| SubItems | O | Detalii despre SubItems. A se vedea: DocumentPositionType [1] = SubItem | |
| [...] | |||
| inhouse | O | Indică o vânzare internă sau o vânzare externă (true / fals). | |
| ItemGroupId | M* |
Indicator grup de articole Detalii privind țara:
|
|
| ItemGroupCaption | O | Denumirea grupului de articole | |
| CostPrice | O/M* |
Prețul unitar al articolului Detalii privind țara:
|
|
| itemDateOfEntry | M* |
Data și ora creării articolului. Detalii privind țara:
|
|
| cantitate | M | Informații privind cantitatea articolului | |
| QuantityUnit | M* |
Specificarea unității de măsură Detalii privind țara:
|
|
| ID | M* |
Indicarea unității de măsură. Detalii privind țara:
|
|
| isoCode | M* |
Unitatea de măsură standard conform codului ISO/UCUM. Pentru mai multe informații, consultați articolul la care face referire linkul. | |
| ItemId | M | ID-ul articolului | |
| ItemType | M* |
Descrie tipul articolului: bunuri sau servicii.
Detalii privind țara:
|
|
| BaseNetValue | M* |
Total net (fără Vat) înainte de aplicarea reducerii sau a suprataxei
Atenție:
suma (netă) a rândului/poziției, NU a articolului. Dacă cantitatea = 2, atunci BaseNetValue este, de asemenea, prețul articolului x 2!
|
|
| BaseGrossValue | M* |
Total brut (inclusiv Vat) înainte de aplicarea reducerii sau a suprataxei
Atenție:
suma (brută) a liniei/poziției, NU a articolului. Dacă cantitatea = 2, atunci BaseGrossValue este, de asemenea, prețul articolului x 2!
|
|
| BaseTaxValue | M* |
Total Vat (sau suma primei cote de impozitare) înainte de aplicarea reducerii sau a suprataxei
Atenție:
suma (a Vat-ului) pentru linie/poziție, NU pentru articol. Dacă cantitatea = 2, atunci BaseTaxValue este, de asemenea, prețul articolului x 2!
Detalii privind țara:
|
|
| BaseTaxValue2 | M* |
Suma celei de-a doua cote de impozit a poziției înainte de aplicarea reducerii/suprataxei. Detalii despre țară:
|
|
| GTIN | O |
Numărul global al articolului comercial (GTIN) Detalii privind țara:
|
|
| BusinessTransactionType | M |
Tipul tranzacției comerciale. Enum:
|
|
| ItemTypeClassification |
ItemTypeClassification poate fi utilizată pentru a aplica o clasificare suplimentară unui articol. ItemTypeClassification poate fi setată numai dacă proprietatea „ItemType” a fost setată la „[0] - Articol” sau „ItemType”: 0. Informații detaliate despre proprietatea „ItemTypeClassification” pot fi găsite în articolul la care se face referire. Sunt disponibile următoarele clasificări.
Detalii privind țara:
|
||
| VatIdentification | M |
ID-ul cotei de Vat. Poate fi interogat prin GET /api/v1/information/client/ {clientId}/getVatIdentification, specificând rata TVA a țării respective. rata TVA a țării respective. |
|
| VatPercent | M |
Cota de Vat exprimată în procente sau prima cotă de impozit aplicabilă articolului în țara respectivă. Detalii privind țara:
|
|
| VatPercent2 | M* |
a doua cotă de impozit aplicabilă articolului, exprimată în procente în țara respectivă. Detalii despre țară:
|
|
| NetValue | M |
Totalul net al poziției (minus eventualele reduceri / plus suprataxele) – fără Vat. Trebuie indicat întotdeauna. |
|
| GrossValue | M |
Totalul brut al poziției (minus eventualele reduceri / plus eventualele suprataxe) – inclusiv Vat. Trebuie indicat întotdeauna. |
|
| TaxValue | M |
Totalul Vat (sau suma primei cote de impozitare) a poziției (minus eventualele reduceri / plus suprataxele) Trebuie indicat întotdeauna. Detalii privind țara:
|
|
| TaxValue2 | M* |
Suma celei de-a doua cote de impozit a articolului după aplicarea reducerii/suprataxei. Detalii despre țară:
|
|
| AccountingIdentifier | O | Identificator suplimentar în scopuri contabile (interfață contabilă) | |
| ItemTaxType | M* |
Tipul de taxă al poziției:
Detalii privind țara:
|
|
| PositionNumber | M | Numărul poziției, începând cu 0 | |
| positionReference | O | Specificarea unui număr de poziție la care se face referire | |
| cancellationPosition | O | „true” dacă această poziție anulează o poziție dintr-un alt document; în caz contrar, „fals” | |
| CreateDate | O | Ora înregistrării poziției | |
[1] = SubItem
„Sub-articole” (DocumentPositionSubItem) oferă posibilitatea de a explica compoziția produselor vândute sau descrierile grupurilor de produse la nivel de articol.
Exemplu: Meniu = Coca-Cola și hamburger.
SubItems au caracter explicativ și nu sunt obligatorii. De asemenea, acestea nu au niciun efect asupra prețului și asupra vânzărilor / taxei pe valoarea adăugată.
[2] = Text
Se utilizează pentru a indica poziția unui text sau a unui Barcode în cadrul documentului.
Exemplu 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": {}
}
],Obiectul DocumentPositionText conține următoarele informații.
Informații din coloana „Type”:
- M ... obligatoriu / necesar
- M* ... obligatoriu / necesar în anumite țări sau în anumite condiții
- R ... recomandat
- O... opțional
| Elemente | Tip | Descriere | |
| tip | M | Tip de poziții (DocumentPositionType) | |
| text | O |
Câmp de text liber Detalii privind țara:
|
|
| barcodeType | O |
Indicarea tipului de Barcode Enum:
|
|
| Barcode | O | Date Barcode | |
| PositionNumber | M | Numărul poziției, începând cu 0 | |
[3] = Rezervare
Pozițiile de rezervare (DocumentPositionBooking) sunt utilizate pentru depuneri, retrageri, precum și pentru vânzarea de vouchere multifuncționale (PayIn, payOut, MultiPurposeVoucher,...).
Exemplu de 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": {}
}
],Obiectul DocumentPositionBooking conține următoarele informații.
Informații din coloana „Tip”:
- M ... obligatoriu / necesar
- M* ... obligatoriu / necesar în anumite țări sau în anumite condiții
- R ... recomandat
- O... opțional
| Elemente | Tip | Descriere | |
| tip | M | Tip de poziții (DocumentPositionType) | |
| caption | M | Descrierea poziției de rezervare | |
| identificator | O | ID suplimentar al înregistrării contabile | |
| BusinessTransactionType | M |
Tipul tranzacției comerciale. Enum:
|
|
| PayOutType | M* |
Indică tipul de plată. Obligatoriu în anumite țări. Valori posibile:
Detalii privind țara:
Notă:
Noutate începând cu DOM v1.2.0 / Client v1.7.6
|
|
| VatIdentification | M |
ID-ul ratei Vat. Poate fi interogat prin GET /api/v1/information/client/ {clientId}/getVatIdentification, specificând cota de TVA a țării respective. |
|
| VatPercent | M | Cota de Vat în procente | |
| NetValue | M |
Totalul net al poziției (fără reduceri) – fără Vat. Trebuie indicată întotdeauna. |
|
| GrossValue | M |
Totalul brut al poziției (minus eventualele reduceri) – inclusiv Vat. Trebuie indicat întotdeauna. |
|
| TaxValue | M |
Totalul Vat al poziției (minus eventualele reduceri) Trebuie indicat întotdeauna. |
|
| AccountingIdentifier | O | Identificator suplimentar în scopuri contabile (interfață contabilă) | |
| ItemTaxType | M* |
Tipul de taxă al poziției:
Detalii privind țara:
|
|
| PositionNumber | M | Numărul poziției, începând cu 0 | |
| positionReference | O | Specificarea unui număr de articol la care se face referire | |
| cancellationPosition | O | „true” dacă această poziție anulează o poziție dintr-un alt document; în caz contrar, „fals”. | |
| DeletedPosition | O | „true” dacă această poziție a fost ștearsă; altfel „false”. | |
| CreateDate | O | Data și ora înregistrării poziției | |
[9] = SubTotal
Subtotal poziție
[10] = Total
Poziția totală. Dacă se utilizează DocumentPositionTotal, aceasta trebuie să fie întotdeauna ultima poziție din document (cel mai mare număr de PositionNumber).
Exemplu de 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": {}
}
],Obiectul DocumentPositionTotal conține următoarele informații.
Informații din coloana „Type”:
- M ... obligatoriu / necesar
- M* ... obligatoriu / necesar în anumite țări sau în anumite condiții
- R ... recomandat
- O... opțional
| Elemente | Tip | Descriere | |
| tip | M | Tip de poziții (DocumentPositionType) | |
| rotunjire | O |
rotunjire aplicată. Dacă suma pozițiilor (valoarea brută) nu este egală cu suma plății. De exemplu, 0,01 ar permite diferențe de rotunjire de +/-0,01 Notă: Vă rugăm să utilizați cu atenție. Valorile mari vor dezactiva validarea sumei de plată / a valorii brute a documentului |
|
| BaseValue | M* | Suma de bază a poziției înainte de aplicarea reducerilor (numai dacă se aplică reduceri) | |
| value | M | Valoarea poziției, inclusiv reducerile. | |
| reduceri | Detalii privind reducerile, scăderile de preț etc. | ||
| DiscountValue | M |
Suma reducerii / valoarea rabatului
Atenție:
dacă DiscountType [1] = discount, suma reducerii trebuie introdusă cu 4 zecimale!
|
|
| caption | O | Denumirea reducerii | |
| DiscountOrder | M* |
Indică ordinea în care se calculează reducerea. Prima reducere luată în considerare are valoarea 0. Trebuie specificat dacă se aplică mai multe reduceri unui articol. |
|
| tip | M |
Tipul reducerii Enum:
|
|
| TypeValue | M |
Valoarea reducerii (suma reducerii) pentru [0] = Reducere: DiscountValue pentru [1] = Reducere: procentul (de ex. reducere de 10%) |
|
| PromotionKeys | O | Chei de promoție – dacă sunt utilizate (de exemplu, cod de voucher) | |
| identificator | O | Identificator suplimentar pentru reducere (poate fi utilizat, de exemplu, pentru gruparea reducerilor în tipuri de reduceri). | |
| caption | O | Denumirea poziției | |
| PositionNumber | M | Numărul postului, începând cu 0 | |
| positionReference | O | Specificarea unui număr de poziție la care se face referire | |
| cancellationPosition | O | „true” dacă această poziție anulează o poziție dintr-un alt document; în caz contrar, „fals”. | |
| DeletedPosition | O | „true” dacă această poziție a fost ștearsă; altfel „false”. | |
| CreateDate | O | Ora înregistrării poziției | |
Acest articol a fost tradus automat.
Comentarii
0 comentarii
Vă rugăm să vă autentificați pentru a lăsa un comentariu.