Naciśnij “Enter” aby skoczyć do treści

DeGenerator sprawozdań ASOS

Jak ja nie lubię tego, co ma serwuje MRPiPS a wcześniej MPiPS w postaci generatorów czegokolwiek! Nazywanie tego „generatorem” też jest na wyrost. Jeśli chodzi o część finansową, to jest to co najwyżej DeGenerator.

Toporne toto jak cholera, UX żaden, a wszyscy z podatków dorzuciliśmy do tego ustrojstwa kupę kasy. Jedyne, do czego się to przydaje to przypomnienie sobie słownika wulgarnej polszczyzny. Naprawdę wszystkie faktury trzeba wpisywać pojedynczo? Nie ma importu z csv ani z arkuszy kalkulacyjnych? Żenada… Ale jest na tę żenadę sposób.

Mała uwaga: Wszystkiego, co jest tu napisane używasz na własną odpowiedzialność. I oczywiście można pewnie to zrobić inaczej – ale to co opisuję, powinno być do strawienia dla przeciętnego, powiedzmy średniozaawansowanego użytkownika.

I nie, wbrew tytułowemu obrazkowi nie jest to hacking. Nie włamujemy się nigdzie, tym bardziej do ministerstwa. Pracujemy na kodzie po stronie użytkownika – czyli tym co generator przesyła na nasz komputer.

Jak to działa

To jest wersja dla geeków. Wersja dla normalnych ludzi zaczyna się od następnego akapitu.

Po każdorazowym zapisaniu kopii roboczej generator parsuje całą tabelkę ze spisem faktur do JSON. Można więc ją ręcznie rozszerzyć o nowe wiersze, które zostaną sparsowane przy kolejnym zapisie. Jeśli podstawimy gotowe wiersze bezpośrednio w kod strony, to generator sobie z nimi bez problemu poradzi. Nie sprawdzałem jak reaguje na wszystkie błędy w formatowaniu danych. Przy niewłaściwej dacie pojawia się 01-01-1980. Liczy porządkowe są nadawane każdorazowo przy tworzeniu tabelki i nie trzeba ich podawać przy wklejaniu kodu.

Jak to zrobić

To jest wersja dla ludzi.

Potrzebujemy do tego:

  • Spisu faktur w jakimkolwiek arkuszu kalkulacyjnym. Ja pracuję na Libre Office (dawniej Open Office).
  • Przeglądarki internetowej – ja mam Firefoxa, ale robiłem to też na Chromie. Innych przeglądarek nie znam i nie wiem gdzie tych opcji szukać. Pewnie gdzieś tam są. Acha: Internet Explorer to nie przeglądarka 😉
  • Edytora – takiego do kodów źródłowych, nie do tekstu. Word odpada. Polecam Bluefisha – mały, prosty i za darmo.

Przygotowanie zestawienia

W arkuszu kalkulacyjnym przygotowujemy zestawienie wszystkich dokumentów. Kolumny od lewej do prawej powinny być zgodne z tym, co mamy w generatorze, czyli:

  • numer dokumentu księgowego
  • kategoria kosztu
  • pozycja kosztu
  • data wystawienia (dzień-miesiąc-rok, czyli np. 01-05-2015 – pamiętajcie o „0” przy jednocyfrowych dniach i miesiącach)
  • nazwa kosztu
  • kwota (same cyfry rozdzielone przecinkiem, np: 12,50)
  • kwota z dotacji (j.w.)
  • kwota z własnych (j.w.)
  • data zapłaty (zapisana tak samo jak data wystawienia)

01

Obróbka danych

A teraz rzeczy, które nam są niezbędne – musimy przygotować nasze dane do eksportu i obróbki.

  • Pozbywamy się ze wszystkich opisów średników. Ma ich nie być nigdzie w naszym arkuszu.
  • Podobnie robimy ze wszystkimi cudzysłowami podwójnymi ” i pojedynczymi ’

Teraz na początku arkusza i pomiędzy wszystkimi kolumnami wstawiamy nowe, puste kolumny. Ja je pokolorowałem i ponumerowałem, żeby łatwiej mi było tłumaczyć co i jak. Powino to wyglądać tak:

02

Teraz w każdą komórkę każdej kolumny musimy wstawić określony tekst – to są znaczniki HTML które formatują dane dokładnie tak, jak na stronie generatora. Po kolei w każdej kolumnie mają się znaleźć następujące wpisy (ważny jest każdy znaczek!).

Po kolei numery kolumny i tekst, który powinien się tam znaleźć:

  1. <tr><td><span class="num"></span></td><td><input name="nr_dokumentu[]" class="mini-input-text" value="
  2. " type="text"></td><td><select name="nr_kat[]" class="auto-width-select"><option value="
  3. ,
  4. " selected="selected"></option></select></td><td><input class="datepicker mini-input-text" name="data_wydatku[]" value="
  5. " type="text"></td><td><input name="nazwa_wydatku[]" class="mini-input-text" value="
  6. " type="text"></td><td><input name="kwota_wydatku[]" class="mini-input-text text-right currency-comma" value="
  7. " type="text"></td><td><input name="wydatek_z_dotacji[]" class="mini-input-text text-right currency-comma" value="
  8. " type="text"></td><td><input name="wydatek_z_wlasnych[]" class="mini-input-text text-right currency-comma" value="
  9. " type="text"></td><td><input class="datepicker mini-input-text" name="data_zaplaty[]" value="
  10. " type="text"></td><td><button value="" class="btn btn-mini del_line" type="button"><i class="icon-minus"></i> usuń</button><button style="display: none;" value="" class="btn btn-mini add_line" type="button"><i class="icon-plus"></i> dodaj</button></td></tr>

Powinno to wyglądać mniej więcej tak:

03

Mam wyłączone zawijanie tekstu w komórkach, dlatego w podglądzie nie widać pełnego wklejonego tekstu. Teraz pora na zabawę.

Eksport

Musimy przenieść dane do pliku tekstowego. Zwykłe skopiowanie i wklejenie nie da rady – bo przeniosą się także niewidoczne odstępy, które akurat pojawią się tam, gdzie nie powinno ich być. Dlatego musimy to zrobić trochę dookoła.

Usuwamy pierwszy wiersz – nie będzie nam już potrzebny. Upewniamy się też, że poza naszą tabelką w arkuszu nie ma nic innego przed nią, pod nią lub obok niej.

Teraz wybieramy opcję „zapisz jako” i z listy typów plików wybieramy csv. Pliki csv to zwykłe pliki tekstowe w których zapisany jest arkusz. Każdy wiersz arkusza odpowiada wierszowi pliku, a przecinki (ang. Coma) oddzielają (ang. Separated) wartości (Values) poszczególnych komórek w wierszu. Z tym przecinkiem to nie jest do końca prawda, ponieważ jest on na tyle popularny, że raczej stosuje się średnik – dlatego tak gorliwie je usuwaliśmy z tekstów. Inaczej zaburzyły by wygląd tabelki po zapisie do scv.

Do wyeksportowania pliku potrzebujemy ustawić odpowiednie parametry. Każdy arkusz powinien je mieć w przypadku eksportu do csv. Ja pracuję na Libre Office. Przy okienku zapisz jako mam opcję „ustawienia filtra”. W Excelu powinno być coś w stylu „ustawienia”. Powinno się to pojawić po wybraniu pliku csv jako docelowego. Znajdują się tam zwykle dwie opcje. Jedna mówi co ma oddzielać komórki (separator tekstu, separator – może nazywać się różnie) i tu wpisujemy lub wybieramy średnik. Druga opcja mówi o tym jak ma być eksportowany tekst – zwykle jest w tym miejscu pokazany podwójny cudzysłów – to pole musimy wyczyścić. Mamy skasować cudzysłów lub inne znaki. Ma nie być żadnego separatora dla tekstu. U mnie wygląda to tak:

04

Klikamy OK albo Zapisz.

 

Przygotowanie wsadu do generatora

Otwieramy nasz plik edytorem – nie Wordem. Sugeruję jakikolwiek edytor dla programistów. Polecałem Bluefisha, więc pokażę jak to na nim zrobić. Otwieramy plik. Jest prawie gotowy, tylko jest w nim pełno średników, których tam nie powinno być. Przyda się nam do tego opcja hurtowej zamiany.

Po otworzeniu pliku edytorem wybieramy Edycja > Zaawansowane wyszukiwanie i zamiana. W każdym edytorze powinna być opcja Znajdź i zamień – to właśnie jej potrzebujemy.

Aby hurtowo pozbyć się średników ustawiamy pole „znajdź” na średnik, a pole „zamień na” zostawiamy puste. Średniki zostaną zamienione na nic – więc po prostu znikną.

05

Pozostaje nam gotowy do wrzucenia w generator tekst. Zaznaczamy go i kopiujemy do pamięci (ctrl+c).

Wrzucenie w generator

Tekst, który przygotowaliśmy musimy teraz wrzucić w generator „tylnymi drzwiami”. Wciśniemy w generator cały tekst, który normalnie jest tworzony przez niego automatycznie przy dodawaniu każdej nowej pozycji w tabelce z zestawieniem faktur. My juz go przygotowaliśmy ze wszytskimi danymi o naszych dokumentach finansowych.

Do tego potrzebujemy przeglądarki, która umożliwia ingerowanie w treść pokazywanej strony. Ja korzystam z Firefoxa.

Otwieramy generator i w naszym sprawozdaniu znajdujemy tabelkę 4. Zestawienie faktur (rachunków)

W tabelce, powiedzmy w miejscu Liczby porządkowej 1 klikamy prawym klawiszem myszy i wybieramy „zbadaj element”. Otworzy nam się zakładka dla developerów i ludzi, którzy wiedzą do czego ona służy. Przeciętni zjadacze chleba nie wiedzą o jej istnieniu i nigdy tu nie zaglądają.

Teraz powinniśmy zobaczyć element <tr> tuż pod napisem zestawienie_faktur_group_dtable

06

Klikamy na nim prawym klawiszem myszy, wybieramy kolejno Wklej > Przed. Nasza tabelka powinna urosnąć o nowe pozycje. Strona właśnie zinterpretowała cały kod, który tak gorliwie obrabialiśmy. Tabelka może wyglądac na wybrakowaną, ale wszytskei dane sa na miejscu – żeby się pojawiły musimy zapisać nasze sprawozdanie. Po odświerzeniu strony nasze dane powinny pojawić się w tabelce.

07

Właśnie dorzuciliśmy tak hurtem wszystkie dane. Przy dodawaniu kilkunastu faktur taka operacja nie ma sensu. Ale przy kilkuset ułatwia życie i oszczędza czas. Oczywiście polecam sprawdzenie poprawności danych po tej operacji i nie odpowiadam za szkody, które powstaną z powodu korzystania z opisanej metody. Mój sposób jest autorski i nieautoryzowany przez ministerstwo. Zostaliście ostrzeżeni 😉

Czy to się jeszcze przyda

Pierwszy raz tym sposobem doczepiałem faktury w 2011. Sposób ciągle działa i będzie działał tak długo, aż nie zmieni się generator. Oby długo nie działał…

 

Zdjęcie: Show me the way to hacking, autor: Alexandre Dulaunoy, Licencja: CC BY-SA 2.0

CC BY-NC-SA 4.0 DeGenerator sprawozdań ASOS by Karol Krzyczkowski is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

%d bloggers like this: