Code Monkey home page Code Monkey logo

Comments (20)

toudi avatar toudi commented on July 30, 2024

będzie będzie.. po prostu obecnie pracuję nad dokumentacją (jest nawet od tego branch) muszę dorobić github action żeby zbudowana dokumentacja dołączała się do binarki oraz wysyłała na serwer no i wciąż muszę dorobić logowanie. Ja to serio robię po godzinach :D

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Super, właśnie z tej dokumentacji dowiedziałem się o opcji: ksef download-pdf , sprawdziłem, działa!

Jak na robotę po godzinach, to jest do znakomita robota, dzięki! :)

from ksef.

toudi avatar toudi commented on July 30, 2024

zobacz najnowszego builda. oczywiście nie muszę chyba dodawać, że ta opcja jak każda inna w programie jest eksperymentalna :) w plikach znajdziesz też dokumentację w PDF

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Dziś się nie uda sprawdzić, coś tam robią na bramce test,

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Dziś sprawdziłem i jest jakiś problem z komendą ./ksef download-pdf:

ksef download-pdf -i '*' -p KSeF/in/registry.yaml -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011 -xml
request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
error running download-pdf:
unable to login to interactive session: cannot retrieve gateway token: failed to unlock correct collection '/org/freedesktop/secrets/collection/login'

Jakby podanego wprost tokena nie widział. Sprawdzane na wersji 0.1.17 .

from ksef.

toudi avatar toudi commented on July 30, 2024

masz rację, zaraz to poprawię

from ksef.

toudi avatar toudi commented on July 30, 2024

mea culpa - nowy build już dostępny :)

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

To teraz OK:

ksef download-pdf -i '*' -p KSeF/in/registry.yaml -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011 -xml
request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
set token 800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
session status code = 100
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
session status code = 310
request URL: https://ksef-test.mf.gov.pl/api/online/Session/Status/20231218-SE-8ED08D533F-175E046D14-97
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231218-1F8BE23107D8-28 Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231218-84443461222D-8C Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}
request: &{Method:GET URL:https://ksef-test.mf.gov.pl/api/online/Invoice/Get/9999999999-20231217-0DD168712B3E-93 Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Sessiontoken:[800ea34f825460625b6e69a282fa44c77550d91c53f0147126c1e6baffec7c51]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:ksef-test.mf.gov.pl Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:{emptyCtx:{}}}

Natomiast chciałem pobrać faktury "własne" i takie coś mam:

ksef download -t -income -d KSeF/invoce -start-date 2023-12-17 -token 43BF872C1A3E7DFF92CE8784329437227DFBFBF42C9DB77EF39153EA0A30C011request URL: https://ksef-test.mf.gov.pl/api/online/Session/AuthorisationChallenge
error running download:
unable to login: unexpected response code: 400 != 2xx or err: <nil>

Choć może "oni" tam coś na tej bramce testowej mieszają, bo nawet na sesji interaktywnej tych faktur typu 3 nie mogę zobaczyć.

from ksef.

toudi avatar toudi commented on July 30, 2024

coś mi się wydaje, że powodem tego błędu jest to że przy opcji download musisz i tak podać numer NIP, nawet jak podajesz token - bo klient musi się zalogować do KSeF a NIP jest częścią wyzwania autoryzacyjnego. spróbowałem na swoich fakturach i przeszło. NIP-u nie musisz podawać jedynie w przypadku opcji -refresh bo wtedy wszystkie parametry są zapisane do pliku registry.yaml. pewnie to jest kandydat do poprawki - na zasadzie że jeśli nie podałeś nipu a nie ma opcji refresh to program powinien wyrzucić komunikat o błędnym wykonaniu

from ksef.

toudi avatar toudi commented on July 30, 2024

acha, również potwierdzam że nie jestem w stanie pobrać ani faktur z typem 3 ani tych autoryzowanych (na oryginalnej aplikacji KSeF).

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Dzięki, rzeczywiście trzeba podać nip, sorry mój błąd.
Jakaś sygnalizacja błędu by się przydała, bo miałem błędną fakturę i dopiero próba pobrania upo dawała błąd,
wysyłka przechodziła bez żadnej informacji o błędzie.

Ta stronka z dokumentacją bardzo fajna!

from ksef.

toudi avatar toudi commented on July 30, 2024

tak, tylko akurat tutaj obawiam się że nic nie jestem w stanie zrobić (tj. jeśli chodzi o wysyłkę błędnej faktury) ponieważ wysyłka w trybie interaktywnym jest asynchroniczna. innymi słowy o ile KSeF po swojej stronie nie będzie miał jakiegoś błędu z bazą danych czy czegoś podobnego to wysyłka faktury (nawet błędnej) zawsze da status 200 / 201. dopiero po odpaleniu komendy status dowiesz się czy została sparsowana. Udało mi się zauważyć jeszcze to, że kiedy plik XML z fakturą wrzucam przez formularz webowy to w konsoli (zakładka network) da radę wyśledzić bardziej szczegółowe błędy których klient KSeF nie wyświetla - co jest pomocne bo wtedy możesz się zorientować mniej więcej co jest nietak w przesyłanej fakturze. to jest wywołanie o nazwie albo upload albo log, nie pamiętam do końca ale jak rozwiniesz sobie tą zakładkę network to napewno się zorientujesz. a jeśli nie to daj znać, podeślę screeny.

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Szkoda, myślałem że api daje jakąś odpowiedź OK lub BAD oprócz kodu 200.
W sumie trzeba zadbać żeby faktura była poprawna i tyle.

Teraz nie pozostaje nic innego niż używać, choć gdzieś tam czytałem że ksef może być jeszcze bardziej opóźniony.

from ksef.

toudi avatar toudi commented on July 30, 2024

chyba nawet wysyłka wsadowa / batch też jest asynchroniczna - różnica jest tylko taka że jeśli we wsadowej coś pójdzie nie tak to odrzucana jest cała grupa faktur. w przypadku wysyłki interaktywnej myślę, że musiałbym dorobić coś takiego że jeśli wysyłasz faktury z tego samego katalogu to program omija te które już zostały zaraportowane i został im nadany numer KSeF. oprócz tego chciałem dorobić wizualizację w PDF ale własną a nie tą z ministerstwa ale to wbrew pozorom będzie trochę roboty. to co jeszcze czytałem że ma się zmienić to że ministerstwo planuje zrezygnować z tokenów na rzecz certyfikatów. z jednej strony spoko bo może umożliwiłoby to generowanie kodów QR faktycznie w trybie offline a z drugiej strony zastanawiam się jak to będzie się mieć do integracji jaką będzie mieć np. infakt / fakturownia czy coś podobnego bo wtedy chyba oni musieliby trzymać u siebie klucz prywatny do certyfikatu klienta

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Miałem zapytać/sprawdzić. Czyli powinno być tak, że jak wyślę fakturę(y) i uda się pobrać upo, to trzeba usunąć/przenieść z katalogu "wysyłkowego" te wysłane faktury? Z tą wizualizacją faktury w PDF to faktycznie będzie robota, niektórzy nie zwracają wcale uwagi na wygląd, a inni wydziwiają i chcą takich "ozdóbek" (loga, ramki, dopiski, itd.) że głowa mała.
Te certyfikaty i usuwanie tokenów 6 miesięcy przed startem systemu to tylko czubek bałaganu jaki panuje w temacie ksef.

from ksef.

toudi avatar toudi commented on July 30, 2024

no właśnie w tej chwili trzeba je usunąć ale w moim rozumieniu to jest błąd tj. niedopracowanie programu. bo powinno być tak (tzn. tak mi się intuicyjnie wydaje) że katalog wysyłkowy masz jeden na sesję i dzięki temu że jest plik rejestru (czyli taka pseudo baza danych) to jak po raz kolejny uruchomisz komendę upload (bo np. masz jakieś faktury do poprawki) to program nie wysyła tych faktur które już raz wysłał. na marginesie na środowisku testowym jest tak że jak wyślesz drugi raz taką samą fakturę (nawet z taką samą datą wysyłki) to systemowi to nie przeszkadza i w KSeF pojawia się duplikat. pytałem ich o to ale mi nie odpisali.

zastanawiałem się też czy warto dorobić jakieś pseudo GUI (myślałem o svelte) do programu ale brutalnie mówiąc mam wrażenie że program jest na tyle mało używany że nie ma to sensu :D i wolę skupić się na logowaniu i wyczyszczeniu kodu.

from ksef.

toudi avatar toudi commented on July 30, 2024

p.s. certyfikaty mogłyby paradoksalnie być zaletą z tego względu że za pomocą certyfikatu mógłbyś podpisać skrót faktury a co za tym idzie mógłbyś faktycznie, realnie offline wygenerować QRKod nawet przy niedziałającym KSeF. ze swojej strony KSeF musiałby tylko mieć operację odwrotną tj. podpisany skrót -> obiekt faktury. również pisałem w tej sprawie do ministerstwa.

co do generowania własnego PDF to można spróbować projektu puppeteer oraz drugi o jakim słyszałem to https://gotenberg.dev/ . wtedy mój program musiałby jedynie wystawiać dane faktury i QRkod a twórca szablonu by sobie te dane parsował i mógł dzięki temu zapisać własnego PDF. wówczas sam program nie musiałby mieć żadnego szablonu HTML bo każdy by sobie zaprojektował taki jaki by mu się podobał

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

no właśnie w tej chwili trzeba je usunąć ale w moim rozumieniu to jest błąd tj. niedopracowanie programu. bo powinno być tak (tzn. tak mi się intuicyjnie wydaje) że katalog wysyłkowy masz jeden na sesję i dzięki temu że jest plik rejestru (czyli taka pseudo baza danych) to jak po raz kolejny uruchomisz komendę upload (bo np. masz jakieś faktury do poprawki) to program nie wysyła tych faktur które już raz wysłał.

To byłby fajny "enhancment", coś jak refresh przy opcji download . W sensie że korzysta z tego pliku rejestru.

na marginesie na środowisku testowym jest tak że jak wyślesz drugi raz taką samą fakturę (nawet z taką samą datą wysyłki) to systemowi to nie przeszkadza i w KSeF pojawia się duplikat. pytałem ich o to ale mi nie odpisali.

To jest ten "bałagan" o którym pisałem!

zastanawiałem się też czy warto dorobić jakieś pseudo GUI (myślałem o svelte) do programu ale brutalnie mówiąc mam wrażenie że program jest na tyle mało używany że nie ma to sensu :D i wolę skupić się na logowaniu i wyczyszczeniu kodu.

Dla mnie niepotrzebne, zastanawiam się czy crona nie użyć do wysyłki i pobierania, lepiej skupić się na kodzie. :)

from ksef.

toudi avatar toudi commented on July 30, 2024

@kuncy7 czy ten ticket można uznać za rozwiązany ?

from ksef.

kuncy7 avatar kuncy7 commented on July 30, 2024

Tak, też zamykam.

from ksef.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.