Closed Qrzysio closed 4 years ago
Należy zastanowić się, jakie jest zadanie tej biblioteki.
Zawsze mocno rozgraniczam warstwę niskopoziomowego klienta (wrappera na API) od konkretnego przypadku użycia. Jak widać, API pozwala na utworzenie takiej "pustej" faktury, ze wszystkimi tego konsekwencjami, zatem klient nie powinien blokować takiej możliwości. Decyzja o tym, czy zablokować taką możliwość powinna być podjęta "wyżej".
Aplikacja zawsze powinna mieć swoją warstwę abstrakcji (wrapper na bibliotekę klienta) i to tam powinno się podejmować decyzję, w jaki sposób chce się korzystać z Klienta.
Należy rozważyć zablokowanie możliwości tworzenia faktur bez żadnych pozycji. wfirma nie pozwala na dodanie faktury bez żadnego produktu. Ma to sens, gdyż nie sprzedając nic, nie powinniśmy wystawić faktury.
W skrypcie jednak można pominąć dodawanie produktów do faktury poprzez metodę
addInvoiceContent()
i nie otrzymamy błędu podczas ostatecznego kroku tworzenia dokumentu.Poniższy mechanizm więc zadziała:
W ten sposób powstanie faktura z jedną pozycją, pomimo tego, że nie wpisaliśmy żadnej. Pozycja będzie miała cenę netto
1 zł
, a jej nazwa będzie brzmieć__empty
.Dobrze byłoby, gdyby skrypt zwracał błąd w przypadku braku pozycji na fakturze. Myślę, że warto to rozważyć.