Il presente articolo illustra, tramite un esempio, come sia possibile implementare i cosiddetti «processi di ordine a lungo termine» e inviarli al RetailForce Fiscal Service.
Le transazioni relative a ordini di lunga durata sono necessarie per l’attuazione della normativa tedesca KassenSichV.
L’esempio classico di un processo di ordine a lungo termine è la normale procedura nel settore della ristorazione, in cui gli ordini dei clienti vengono registrati ai tavoli. Vengono effettuati diversi ordini indipendentemente l’uno dall’altro e, alla fine, tali ordini vengono riepilogati e pagati da uno o più ospiti.
Questo flusso operativo è noto in Germania come «processo di ordinazione a lungo termine».
Nel sistema RetailForce gli ordini sono implementati come documenti separati. Si rimanda anche alle caratteristiche degli articoli nel settore della ristorazione.
Il collegamento tra i documenti di fatturazione (documentType=Receipt) e gli ordini (documentType=LongTermOrder) viene stabilito tramite la proprietà AllocationGroups (Document.AllocationGroups). In tale proprietà è possibile memorizzare, ad esempio, un numero di tavolo o qualsiasi altro riferimento univoco all’ordine. È fondamentale che la quantità totale degli articoli ordinati e quella degli articoli successivamente fatturati coincidano esattamente.
Funzionamento e procedura
Il cliente si accomoda al tavolo e ordina una Coca-Cola.
È necessario inviare un ordine con documentType = LongTermOrder.
{
"ModelVersion": "1.0.1",
"UniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"AdditionalFields": {},
"AutomaticVatCalculation": 0,
"DocumentGuid": "aea8f885-8f44-4e9c-ac35-d1100d89aa30",
"DocumentId": "20211002T1607265029230+0200",
"CreateDate": "2021-10-02T16:07:26.502923+02:00",
"BookDate": "2021-10-02T16:07:26.502923+02:00",
"ProcessStartDate": null,
"DocumentNumber": null,
"CancellationDocument": false,
"DocumentReference": null,
"IsTraining": false,
"DocumentType": 80,
"DocumentTypeCaption": null,
"User": {
"Id": "123",
"Caption": "TestUser"
},
"AllocationGroups": [
"Table 1"
],
"Partner": null,
"Notes": null,
"FiscalResponse": null,
"FiscalDocumentNumber": 0,
"FiscalDocumentRevision": 0,
"FiscalDocumentStartTime": null,
"Positions": [
{
"ItemCaption": "Cola 0.33",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 0,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
}
],
"Payments": []
}
Successivamente il cliente ordina altre 2 Coca-Cola per sé e per un altro ospite:
{
"ModelVersion": "1.0.1",
"UniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"AdditionalFields": {},
"AutomaticVatCalculation": 0,
"DocumentGuid": "b7d79184-62f4-4879-81d3-f2d2139746c3",
"DocumentId": "20211002T1609397066852+0200",
"CreateDate": "2021-10-02T16:09:39.7066852+02:00",
"BookDate": "2021-10-02T16:09:39.7066852+02:00",
"ProcessStartDate": null,
"DocumentNumber": null,
"CancellationDocument": false,
"DocumentReference": null,
"IsTraining": false,
"DocumentType": 80,
"DocumentTypeCaption": null,
"User": {
"Id": "123",
"Caption": "TestUser"
},
"AllocationGroups": [
"Table 1"
],
"Partner": null,
"Notes": null,
"FiscalResponse": null,
"FiscalDocumentNumber": 0,
"FiscalDocumentRevision": 0,
"FiscalDocumentStartTime": null,
"Positions": [
{
"ItemCaption": "Cola 0.33",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 0,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
},
{
"ItemCaption": "Cola 0.33",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 1,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
}
],
"Payments": []
}
Entrambi i clienti desiderano andarsene e pagare separatamente; un cliente paga per una Coca-Cola:
{
"ModelVersion": "1.0.1",
"UniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"AdditionalFields": {},
"AutomaticVatCalculation": 0,
"DocumentGuid": "cd8f59c3-7514-40cc-931c-c42151bd44d3",
"DocumentId": "20211002T1611296576261+0200",
"CreateDate": "2021-10-02T16:11:29.6576261+02:00",
"BookDate": "2021-10-02T16:11:29.6576261+02:00",
"ProcessStartDate": null,
"DocumentNumber": null,
"CancellationDocument": false,
"DocumentReference": null,
"IsTraining": false,
"DocumentType": 0,
"DocumentTypeCaption": null,
"User": {
"Id": "123",
"Caption": "TestUser"
},
"AllocationGroups": [
"Table 1"
],
"Partner": null,
"Notes": null,
"FiscalResponse": null,
"FiscalDocumentNumber": 0,
"FiscalDocumentRevision": 0,
"FiscalDocumentStartTime": null,
"Positions": [
{
"ItemCaption": "Chocolate",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 0,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
}
],
"Payments": [
{
"Amount": 3.4,
"CurrencyIsoCode": "EUR",
"Caption": null,
"UniqueReadablePaymentIdentifier": null,
"ForeignAmount": 0.0,
"ForeignAmountExchangeRate": 0.0,
"AdditionalFields": {},
"PaymentType": 0,
"VatIdentification": null,
"VatPercent": null,
"TaxValue": null
}
]
}
Il secondo cliente salda le restanti due Coca-Cola mediante carta EC:
{
"ModelVersion": "1.0.1",
"UniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"AdditionalFields": {},
"AutomaticVatCalculation": 0,
"DocumentGuid": "2c215c9b-64f4-4785-9bd9-2d068f02346b",
"DocumentId": "20211002T1612589529701+0200",
"CreateDate": "2021-10-02T16:12:58.9529701+02:00",
"BookDate": "2021-10-02T16:12:58.9529701+02:00",
"ProcessStartDate": null,
"DocumentNumber": null,
"CancellationDocument": false,
"DocumentReference": null,
"IsTraining": false,
"DocumentType": 0,
"DocumentTypeCaption": null,
"User": {
"Id": "123",
"Caption": "TestUser"
},
"AllocationGroups": [
"Table 1"
],
"Partner": null,
"Notes": null,
"FiscalResponse": null,
"FiscalDocumentNumber": 0,
"FiscalDocumentRevision": 0,
"FiscalDocumentStartTime": null,
"Positions": [
{
"ItemCaption": "Chocolate",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 0,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
},
{
"ItemCaption": "Chocolate",
"ItemShortCaption": null,
"Discounts": [],
"Type": 0,
"UseSubItemVatCalculation": true,
"SubItems": null,
"InHouse": true,
"ItemGroupId": null,
"ItemGroupCaption": null,
"Quantity": 1.0,
"QuantityUnit": null,
"ItemId": "003145",
"BaseNetValue": 3.18,
"BaseGrossValue": 3.4,
"BaseTaxValue": 0.22,
"GTIN": "7622300429331",
"BusinessTransactionType": 0,
"VatIdentification": 2,
"VatPercent": 7.0,
"NetValue": 3.18,
"GrossValue": 3.4,
"TaxValue": 0.22,
"AccountingIdentifier": null,
"PositionNumber": 1,
"PositionReference": null,
"CancellationPosition": false,
"AdditionalFields": {}
}
],
"Payments": [
{
"Amount": 6.8,
"CurrencyIsoCode": "EUR",
"Caption": "EC",
"UniqueReadablePaymentIdentifier": null,
"ForeignAmount": 0.0,
"ForeignAmountExchangeRate": 0.0,
"AdditionalFields": {},
"PaymentType": 1,
"VatIdentification": null,
"VatPercent": null,
"TaxValue": null
}
]
}
A questo punto, il conto viene nuovamente chiuso e tutti gli ordini risultano saldati.
Questo articolo è stato tradotto automaticamente.
Commenti
0 commenti
Accedi per aggiungere un commento.