W niniejszym artykule na przykładzie pokazano, w jaki sposób można wdrożyć tzw. „procesy zamówień długoterminowych” i przesłać je do serwisu RetailForce Fiscal Service.
Transakcje zamówień długotrwałych są wymagane do wdrożenia niemieckiego rozporządzenia KassenSichV.
Klasycznym przykładem długotrwałego procesu zamówienia jest standardowa procedura stosowana w gastronomii, w ramach której zamówienia klientów są rejestrowane przy stolikach. Kilka zamówień jest składanych niezależnie od siebie, a na koniec są one sumowane i opłacane przez jednego lub kilku gości.
Proces ten znany jest w Niemczech jako proces zamówień długotrwałych.
W systemie RetailForce zamówienia są realizowane jako oddzielne dokumenty. Zobacz również artykuł dotyczący specyfiki branży gastronomicznej.
Powiązanie między dokumentami rozliczeniowymi (documentType=Receipt) a zamówieniami (documentType=LongTermOrder) ustanawia się za pomocą właściwości AllocationGroups (Document.AllocationGroups). W tym miejscu można zapisać na przykład numer stolika lub dowolny inny numer referencyjny zamówienia. Istotne jest, aby łączna ilość zamówionych pozycji oraz pozycji, które są następnie fakturowane, była dokładnie taka sama.
Funkcja i procedura
Klient zajmuje miejsce przy stoliku i zamawia colę.
Należy wysłać zamówienie o dokumentType równym 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": []
}
Następnie klient zamawia jeszcze 2 colę – dla siebie i dla innego gościa:
{
"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": []
}
Obaj klienci chcieliby wyjść i zapłacić osobno; jeden z nich płaci za jedną colę:
{
"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
}
]
}
Drugi klient również dokonuje płatności (za pozostałe dwie coly) kartą 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
}
]
}
W ten sposób stolik zostaje ponownie zamknięty, a wszystkie zamówienia rozliczone.
Ten artykuł został przetłumaczony automatycznie.
Komentarze
Komentarze: 0
Zaloguj się, aby dodać komentarz.