Do serwisu można wysyłać dowolne polecenia sterujące, jednak dla wygody użytkowania najczęściej używane funkcje jak wydruk paragonów czy wydruk faktur (od wersji 2.3) mają dedykowane restpointy.

Pojedyncza faktura

Aby wydrukować fakturę, wystarczy wysłać poniższy request z konsoli (lub z dowolnego programu do wysyłania requestów HTTP, np Fiddler lub Postman).

Polecenie wydrukuje poniższą fakturę na drukarce:

Paczka dystrybucyjna zawiera katalog docs/ a w nim pliki HTML z przykładowymi requestami do serwisu.

W przypadku wydruku faktur nie zawsze wiadomo który indeks stawki odpowiada jakiej stawce VAT. Aby nie odpytywać za każdym razem drukarki lub tym bardziej nie trzymać konfiguracji w kodzie, PosnetServer pozwala wygodnie przekazać stawkę VAT w formacie “23,00”, “8,00” lub “A”, “B” itd. Przykład:

Wiele faktur

Często chcemy wydrukować wiele faktur na raz. W takiej sytuacji możemy skorzystać z requestu /faktury.

Powyższy request wydrukuje 2 faktury na drukarce.

Drukowanie asynchroniczne (OPCJA 1)

Drukarki fiskalne nie należą do najszybszych, stąd pojedynczy request do serwisu może trwać od kilku do nawet kilkunastu sekund, blokując tym samym proces requestujący. Aby otrzymać szybko zwrot i nie czekać na zakończenie drukowania, należy dodać w URL “?async=true“. Dzięki temu PostnetServer przyjmie request i doda go do kolejki, zwracając niezwłocznie 200OK do procesu requetsującego. Drukowanie faktury rozpocznie się jak tylko drukarka będzie gotowa. Status requestu asynchronicznego można sprawdzić odpytując restpoint /faktura podając identyfikator transakcji asynchronicznej.

Sprawdzenie statusu (gdzie 5f1c29d0-3284-4bb7-878c-4cf6f992591b to identyfikator transakcji asynchronicznej zwrócony w odpowiedzi na poprzedni request):

DRUKOWANIE ASYNCHRONICZNE (OPCJA 1)

Node.js działa w jednym wątku, co oznacza że kolejne wołanie asynchroniczne (z parametrem ?async=true) będzie i tak oczekiwało na zakończenie aktualnego wydruku. Najlepszym rozwiązaniem aby zapewnić pełną asynchroniczność jest użycie kolejki requestów w formie “proxy” przed PostnetServer’em. Jest wiele sposobów na stworzenie takiej architektury, niemniej jednak w naszym publicznym repozytorium github, zamieszczamy kod przykładowego rozwiązania

https://github.com/bigdotsoftware/posnetserver-async-proxy

dodatkowe linie

Aby wstawić dodatkowe linie do faktury, wyślij request z uzupełnioną strukturą headerex jak w pierwszym przykładzie.

Share This

What's your reaction?
0Smile0Lol0Wow0Love0Sad0Angry

Leave a comment