Registeruz
Gem build as SVK alternation of CZ Ares gem
Allows you to get company/person information based on their ICO (we purely use it this way, but could be bent to use it otherwise :) )
Installation
Add this line to your application's Gemfile:
gem 'registeruz'
And then execute:
$ bundle
Or install it yourself as:
$ gem install registeruz
Usage
This gem has no setup, all data it accesses is free online, just enjoy them :)
Purely based on documentation found here on http://www.registeruz.sk/
You can find many many details there, I will present you with use case I did this for, if you are missing something, do not hesitate to contact me, will try to have a look shortly...
Registeruz::Subject
You are provided with class Registeruz::Subject
which allows you to search
through companies by attributes listed in official docs, I will go through ICO
lookup only here:
You can choose if you are searching and expect more items returned to use where
(similar to rails activerecord method):
> Registeruz::Subject.where(ico: 50826042)
=> [#<Registeruz::Models::Subject:0x00007f8b79871098
@body=
{"skNace"=>"69200",
"konsolidovana"=>false,
"datumPoslednejUpravy"=>"2017-11-03",
"zdrojDat"=>"SUSR",
"nazovUJ"=>"UOL SK s.r.o.",
"ico"=>"50826042",
"mesto"=>"Bratislava - mestská časť Rača",
"ulica"=>"Karpatské námestie 10A",
"psc"=>"83106",
"datumZalozenia"=>"2017-04-12",
"pravnaForma"=>"112",
"velkostOrganizacie"=>"00",
"druhVlastnictva"=>"7",
"kraj"=>"1",
"okres"=>"103",
"sidlo"=>"529354",
"id"=>1689373},
@city="Bratislava - mestská časť Rača",
@consolidated=false,
@data_origin="SUSR",
@dic=nil,
@district_id="103",
@founded_at=2017-04-12 00:00:00 +0200,
@ico="50826042",
@id=1689373,
@legal_form_id="112",
@name="UOL SK s.r.o.",
@organization_size_id="00",
@ownership_type_id="7",
@postal_code="83106",
@region_id="1",
@residence_id="529354",
@sk_nace_code_id="69200",
@street="Karpatské námestie 10A",
@updated_at=2017-11-03 00:00:00 +0100>]
if you get whole array of results, you can perform array operations on it... that's a plus...
Otherwise searching by ICO seems to make more sense with usage of find_by
where object of Registeruz::Subject
is being returned like this:
> Registeruz::Subject.find_by(ico: 50826042)
=> #<Registeruz::Models::Subject:0x00007f8b7b0e8518
@body=
{"druhVlastnictva"=>"7",
"kraj"=>"1",
"okres"=>"103",
"sidlo"=>"529354",
"zdrojDat"=>"SUSR",
"nazovUJ"=>"UOL SK s.r.o.",
"mesto"=>"Bratislava - mestská časť Rača",
"ulica"=>"Karpatské námestie 10A",
"psc"=>"83106",
"datumPoslednejUpravy"=>"2017-11-03",
"datumZalozenia"=>"2017-04-12",
"ico"=>"50826042",
"pravnaForma"=>"112",
"velkostOrganizacie"=>"00",
"skNace"=>"69200",
"konsolidovana"=>false,
"id"=>1689373},
@city="Bratislava - mestská časť Rača",
@consolidated=false,
@data_origin="SUSR",
@dic=nil,
@district_id="103",
@founded_at=2017-04-12 00:00:00 +0200,
@ico="50826042",
@id=1689373,
@legal_form_id="112",
@name="UOL SK s.r.o.",
@organization_size_id="00",
@ownership_type_id="7",
@postal_code="83106",
@region_id="1",
@residence_id="529354",
@sk_nace_code_id="69200",
@street="Karpatské námestie 10A",
@updated_at=2017-11-03 00:00:00 +0100>
You can see all the codebook values returned with ..._id
params, which does
not do any extra queries for codebook values, but still you have their
alternatives without ending _id
available for use like so (they return
codebook values):
#<Registeruz::Models::Subject:0x00007fdc7aa124b8
@city="Bratislava - mestská časť Rača",
@consolidated=false,
@data_origin="SUSR",
@dic=nil,
@district="Bratislava III",
@founded_at=2017-04-12 00:00:00 +0200,
@ico="50826042",
@id=1689373,
@legal_form="Spol. s r. o.",
@name="UOL SK s.r.o.",
@organization_size="nezistený",
@ownership_type="Zahraničné",
@postal_code="83106",
@region="Bratislavský kraj",
@residence="Bratislava-Rača",
@sk_nace_code="Účtovnícke činnosti",
@street="Karpatské námestie 10A",
@updated_at=2017-11-03 00:00:00 +0100>
if you want to purely search by id you have ActiveRecord-like method find
available:
> Registeruz::Subject.find(1689373)
=> #<Registeruz::Models::Subject:0x00007fc6860e8950
@body=
{"druhVlastnictva"=>"7",
"kraj"=>"1",
"okres"=>"103",
"sidlo"=>"529354",
"zdrojDat"=>"SUSR",
"nazovUJ"=>"UOL SK s.r.o.",
"mesto"=>"Bratislava - mestská časť Rača",
"ulica"=>"Karpatské námestie 10A",
"psc"=>"83106",
"datumPoslednejUpravy"=>"2017-11-03",
"datumZalozenia"=>"2017-04-12",
"ico"=>"50826042",
"pravnaForma"=>"112",
"velkostOrganizacie"=>"00",
"skNace"=>"69200",
"konsolidovana"=>false,
"id"=>1689373},
@city="Bratislava - mestská časť Rača",
@consolidated=false,
@data_origin="SUSR",
@dic=nil,
@district_id="103",
@founded_at=2017-04-12 00:00:00 +0200,
@ico="50826042",
@id=1689373,
@legal_form_id="112",
@name="UOL SK s.r.o.",
@organization_size_id="00",
@ownership_type_id="7",
@postal_code="83106",
@region_id="1",
@residence_id="529354",
@sk_nace_code_id="69200",
@street="Karpatské námestie 10A",
@updated_at=2017-11-03 00:00:00 +0100>
The Registeruz::Subject
that is returned has method with english names, but
here you have SVK equivalents from official docs:
-
id
- identifikátor účtovnej jednotky, maximálne desaťciferné celé číslo -
ico
- IČO účtovnej jednotky, osemznakový textový reťazec -
dic
- DIČ účtovnej jednotky, desaťznakový textový reťazec -
name
- názov účtovnej jednotky, textový reťazec s maximálnou dĺžkou 500 znakov -
city
- adresa účtovnej jednotky, mesto, textový reťazec s maximálnou dĺžkou 200 znakov -
street
- adresa účtovnej jednotky, ulica s číslom, textový reťazec s maximálnou dĺžkou 200 znakov -
postal_code
- adresa účtovnej jednotky, PSČ, textový reťazec s maximálnou dĺžkou 10 znakov -
founded_at
- dátum založenia účtovnej jednotky, formát RRRR-MM-DD -
closed_at
- dátum zrušenia účtovnej jednotky, formát RRRR-MM-DD -
legal_form
- kód právnej formy (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
sk_nace_code
- kód SK NACE klasifikácie (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
organization_size
- kód kategórie veľkosti organizácie (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
ownership_type
- kód druhu vlastníctva (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
region
- sídlo účtovnej jednotky, kód kraja (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
district
- sídlo účtovnej jednotky, kód okresu (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
residence
- sídlo účtovnej jednotky, kód obce alebo mesta (viď Číselníky), textový reťazec s maximálnou dĺžkou 100 znakov -
consolidated
- boolean príznak - true, ak jednotka obsahuje aspoň jednu konsolidovanú účtovnú závierku -
data_origin
- kód zdroja, z ktorého pochádzajú dáta (viď Zdroje dát), textový reťazec s maximálnou dĺžkou 30 znakov -
updated_at
- dátum poslednej úpravy, formát RRRR-MM-DD
When there is Číselník
mentioned it means you will not get ID representation
of the data but gem looks it up and gives you slovak word equivalent of the
ID....
Registeruz::FinancialStatement
You are provided with class Registeruz::FinancialStatement
which allows you get financial statements...
Unlike above Registeruz::Subject
this can only use these params for search:
-
pokracovat-za-id
- continue after given id -
max-zaznamov
- max number of records returned
to search e.x. for two records starting with id 3 (returns array of objects as ussual...):
> Registeruz::FinancialStatement.where('pokracovat-za-id': 3, 'max-zaznamov': 2)
=> [#<Registeruz::Models::FinancialStatement:0x00007fc68613a318
@accounting_report_ids=[7, 8],
@assembled_for_date=2009-12-31 00:00:00 +0100,
@body=
{"ico"=>"00165581",
"dic"=>"2020830152",
"nazovUJ"=>"Najvyšší súd Slovenskej republiky",
"datumPoslednejUpravy"=>"2013-08-18",
"zdrojDat"=>"JUS",
"obdobieOd"=>"2009-01",
"obdobieDo"=>"2009-12",
"typ"=>"Riadna",
"konsolidovana"=>true,
"datumZostaveniaK"=>"2009-12-31",
"idUJ"=>31355,
"idUctovnychVykazov"=>[7, 8],
"id"=>4},
@comprehensiver_finstat_of_public_admin=nil,
@consolidated=true,
@consolidated_check_of_central_gov=nil,
@data_origin="JUS",
@dic="2020830152",
Then if you are looking for one in particular, you can do so by using its ID:
> Registeruz::FinancialStatement.find(1)
=> #<Registeruz::Models::FinancialStatement:0x00007fc68610ba40
@accounting_report_ids=[1, 2],
@assembled_for_date=2009-12-31 00:00:00 +0100,
@body=
{"ico"=>"30845572",
"nazovUJ"=>"Ministerstvo obrany Slovenskej republiky",
"datumPoslednejUpravy"=>"2013-08-18",
"zdrojDat"=>"JUS",
"obdobieOd"=>"2009-01",
"obdobieDo"=>"2009-12",
"typ"=>"Riadna",
"konsolidovana"=>true,
"datumZostaveniaK"=>"2009-12-31",
"idUJ"=>442175,
"idUctovnychVykazov"=>[1, 2],
"id"=>1},
@comprehensiver_finstat_of_public_admin=nil,
@consolidated=true,
@consolidated_check_of_central_gov=nil,
@data_origin="JUS",
@dic=nil,
@fond_name=nil,
@ico="30845572",
@id=1,
@lei_code=nil,
@period_from=2009-01-01 00:00:00 +0100,
@period_to=2009-12-01 00:00:00 +0100,
@subject_id=442175,
@subject_name="Ministerstvo obrany Slovenskej republiky",
@type="Riadna",
@updated_at=2013-08-18 00:00:00 +0200>
Subject is part of the response, referenced by id there (subject_id
) and you
can get its value by calling method without _id
like so:
> finstat = Registeruz::FinancialStatement.find(1)
> finstat.subject
=> #<Registeruz::Models::Subject:0x00007fc6829ce898
@body=
{"datumPoslednejUpravy"=>"2017-11-30",
"zdrojDat"=>"SUSR",
"nazovUJ"=>"Ministerstvo obrany Slovenskej republiky",
"ico"=>"30845572",
"mesto"=>"Bratislava - mestská časť Nové Mesto",
"ulica"=>"Kutuzovova 8",
"psc"=>"83247",
"datumZalozenia"=>"1993-01-01",
"pravnaForma"=>"321",
"velkostOrganizacie"=>"36",
"druhVlastnictva"=>"4",
"kraj"=>"1",
"okres"=>"103",
"sidlo"=>"529346",
"idVyrocnychSprav"=>[2208382, 2619266, 3020165, 3411566],
"idUctovnychZavierok"=>[1, 613, 557005, 558698, 698433, 697701, 1784783, 1742215, 2082509, 2208380, 2450565, 2619265, 2884031, 3019938, 3279774, 3276049, 3411565],
"skNace"=>"84220",
"konsolidovana"=>true,
"id"=>442175},
@city="Bratislava - mestská časť Nové Mesto",
@consolidated=true,
@data_origin="SUSR",
@dic=nil,
@district_id="103",
@founded_at=1993-01-01 00:00:00 +0100,
@ico="30845572",
@id=442175,
@legal_form_id="321",
@name="Ministerstvo obrany Slovenskej republiky",
@organization_size_id="36",
@ownership_type_id="4",
@postal_code="83247",
@region_id="1",
@residence_id="529346",
@sk_nace_code_id="84220",
@street="Kutuzovova 8",
@updated_at=2017-11-30 00:00:00 +0100>
Registeruz::FinancialStatement
object as is represented by enlish attributes
is meant to represent these:
-
id
- identifikátor účtovnej závierky, maximálne desaťciferné celé číslo -
period_from
- účtovná závierka za obdobie - od, formát RRRR-MM -
period_to
- účtovná závierka za obdobie - do, formát RRRR-MM -
submitted_at
- dátum podania účtovnej závierky (napr. evidencia na FRSR), formát RRRR-MM-DD -
assembled_at
- dátum, kedy bola závierka zostavená, formát RRRR-MM-DD -
approved_at
- dátum, kedy bola závierka schválená, formát RRRR-MM-DD -
assembled_for_date
- dátum, ku ktorému bola závierka zostavená, formát RRRR-MM-DD -
auditor_report_added_at
- dátum priloženia správy audítora, formát RRRR-MM-DD -
subject_name
- názov účtovnej jednotky v čase podania závierky, textový reťazec s maximálnou dĺžkou 500 znakov -
ico
- IČO účtovnej jednotky v čase podania závierky, osemznakový textový reťazec -
dic
- DIČ účtovnej jednotky v čase podania závierky, desaťznakový textový reťazec -
fond_name
- názov fondu, za ktorý bola závierka predložená (v prípade že sa jedná o účtovnú závierku fondu), textový reťazec s maximálnou dĺžkou 500 znakov -
lei_code
- LEI kód, pod ktorým bola závierka predložená, textový reťazec s dĺžkou 20 znakov -
subject_id
- identifikátor účtovnej jednotky, maximálne desaťciferné celé číslo -
consolidated
- boolean príznak - true, ak ide o konsolidovanú závierku -
consolidated_check_of_central_gov
- boolean príznak - true, ak ide o konsolidovanú závierku ústrednej štátnej správy -
comprehensiver_finstat_of_public_admin
- boolean príznak - true, ak ide o súhrnnú účtovnú závierku verejnej správy -
type
- "Riadna", "Mimoriadna", "Priebežná" alebo "Kombinovaná" (riadna aj mimoriadna) -
accounting_report_ids
- zoznam identifikátorov všetkých súvisiacich účtovných výkazov, identifikátor je maximálne desaťciferné celé číslo -
data_origin
- kód zdroja, z ktorého pochádzajú dáta (viď Zdroje dát), textový reťazec s maximálnou dĺžkou 30 znakov -
updated_at
- dátum poslednej úpravy, formát RRRR-MM-DD
Registeruz::Api::Codebook
Otherwise you can search yourself through codebooks like this:
Registeruz::Api::Codebook.find('sidla', '510262')
=> "Liptovský Mikuláš"
First param is name of the codebook, you can use one of these:
pravne-formy
sk-nace
druhy-vlastnictva
velkosti-organizacie
kraje
okresy
sidla
if you do not pass second param, it will return the whole collection hash and you can search for whatever you were looking for this way:
Registeruz::Api::Codebook.find('druhy-vlastnictva')
=> [{"nazov"=>{"sk"=>"Zatiaľ nezistené", "en"=>"Not ascertained yet"},"kod"=>"0"},
{"nazov"=>{"sk"=>"Medzinárodné - verejné", "en"=>"Internatonial-public"},"kod"=>"1"},
{"nazov"=>{"sk"=>"Súkromné tuzemské", "en"=>"Private inland"}, "kod"=>"2"},
{"nazov"=>{"sk"=>"Družstevné", "en"=>"Cooperative-owned"}, "kod"=>"3"},
{"nazov"=>{"sk"=>"Štátne", "en"=>"State-owned"}, "kod"=>"4"},
{"nazov"=>{"sk"=>"Vlast.územnej samosprávy", "en"=>"Municipality-owned"},"kod"=>"5"},
{"nazov"=>{"sk"=>"Združ.,p.strany,cirkvi", "en"=>"Ownership of associat."}, "kod"=>"6"},
{"nazov"=>{"sk"=>"Zahraničné", "en"=>"Foreign"}, "kod"=>"7"},
{"nazov"=>{"sk"=>"Medzinárodné - súkromné", "en"=>"International-private"}, "kod"=>"8"},
{"nazov"=>{"sk"=>"Zmiešané", "en"=>"Mixed"}, "kod"=>"9"}]
Enjoy!
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/registeruz. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the GemTemplate project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.