Code Monkey home page Code Monkey logo

ares's Introduction

Downloads this Month Latest Stable Version Coverage Status Total Downloads License

More information about versions is in changelog.

Support development by QR code

Use QR code or sponsor button where is link on my revolut.

Thank you :)

QR payment

Installation to project

The best way to install h4kuna/ares is using Composer:

composer require h4kuna/ares

# optional and default support
composer require guzzlehttp/guzzle

Download information about customer via his IN.

ARES

Homepage documentation for developers.

Load data by one identification number.

use h4kuna\Ares;
$ares = (new Ares\AresFactory())->create();
try {
    $response = $ares->loadBasic('87744473');
    /* @var $response Ares\Ares\Core\Data */
    var_dump($response);
} catch (Ares\Exceptions\IdentificationNumberNotFoundException $e) {
    // log identification number, why is bad? Or make nothing.
} catch (Ares\Exceptions\ServerResponseException $e) {
    // no response from server or broken json
}

Load data by many identification numbers. Limit by ARES service is set to 100 items, but library chunk it and check duplicity.

use h4kuna\Ares;
/** @var Ares\Ares $ares */
$numbers = ['one' => '25596641', 'two' => '26713250', 'three' => '27082440', 'four' => '11111111'];

try { 
    foreach ($ares->loadBasicMulti($numbers) as $name => $r) {
        var_dump($name, $r->company);
    }
} catch (Ares\Exceptions\ServerResponseException $e) {
    // no response from server or broken json
}

Other endpoints

Choose endpoint from class Sources.

  • SERVICE_* - available other endpoints
  • CORE - is main endpoint this is used in method $ares->loadBasic()
  • DIAL - use if you want list of value for example PravniForma
  • SER_NO_* are not exists
use h4kuna\Ares;

/** @var Ares\Ares $ares */
$result = $ares->getAresClient()->useEndpoint(Ares\Ares\Sources::SERVICE_VR, '27082440');
var_dump($result);

Dials

Parameters kodCiselniku and zdrojCiselniku you can find in json file, on this page AresRestApi-verejne_v*.json, like a ciselnikKod: PravniForma, zdroj: res.

use h4kuna\Ares;

/** @var Ares\Ares $ares */
$result = $ares->getAresClient()->searchEndpoint(Ares\Ares\Sources::DIAL, [
	'kodCiselniku' => 'PravniForma',
	'zdrojCiselniku' => 'res',
])->ciselniky[0]->polozkyCiselniku;

foreach ($result as $item) {
	var_dump($item);
}

Data Box (datová schánka)

Manual

use h4kuna\Ares;
/** @var Ares\Ares $ares */
try {
    $response = $ares->loadDataBox('87744473');
    var_dump($response->ISDS);
} catch (h4kuna\Ares\Exceptions\ServerResponseException $e) {
    // catch error
}

VIES

Support base check.

use h4kuna\Ares;
/** @var Ares\Ares $ares */

try {
    $response = $ares->checkVatVies($vatNumber);
    var_dump($response->valid); // true / false
} catch (Ares\Exceptions\ServerResponseException $e) {
    // invalid VAT
}

ares's People

Contributors

bigohenry avatar domm98cz avatar h4kuna avatar radimvaculik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ares's Issues

Cache

Could you consider using cache for ares requests ?

Nepotřebná závislost Nette/Utils

Ahoj Milano,

v prvé řadě děkuji, že tento balíček (a jiné) a také za to, jak rychle jsou reagoval na změnu API našeho milého ministerstva.

Nasazuji alphu nové verze na projekt a narazil jsem na konflikt s Nette/Utils. Máme pouze 2.4, tak jsem si udělal fork. Nicméně mě zarazilo, že po provedení downgrade na 2.4 všechny testy v pohodě prošly a podle všeho je to prostě zpětně kompatibilní. Z tohoto důvodu bych navrhl nechat jako kompatibilní i starší verzi utils, protože tomu tak je.

Nechci tu být za idiota, co ničím nepřispěje a jen nadává, ale zvažoval jsi Nette/Utils nepoužít vůbec? V knihovně se používá velmi zřídka na základní věci (hlavně JSON), což umí PHP i nativně a vytváří se tím závislost na balíček, který se používá ve framework a může to na spoustě projektů kolidovat.

Pokud nic z toho nechceš řešit, tak to issue prostě zavři.

tldr;

  1. Nette/Utils není v knihovně potřeba
  2. Zpětnou kompatibilitu balíčku mohou zařídit i nižší verze

loadData and loadXml has wrong array type

Hello. Methods loadData and loadXml are expecting array $options = [string => mixed] according to
@param array<string, mixed> $options
but
array $options = [CURLOPT_CONNECTTIMEOUT => 30]
is <int, mixed>

Support PHP 8.1

Deprecated:  Return type of h4kuna\DataType\Immutable\Messenger::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/vendor/h4kuna/data-type/src/Immutable/Messenger.php on line 131
Deprecated:  h4kuna\Ares\Data implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /var/www/html/vendor/h4kuna/ares/src/Data.php on line 28

house_number je null

Ahoj, house_number může být null, protože v ARESu nemusí být doplněny AA->CD a AA->CO.
house_number ve tvém formátu se ale může nacházet v AA->CA.

IČO, u kterého se to projevuje: 26713250

Dotaz na ares někdy vrací prázdný simpleXmlElement

Někdy se stane, že v dotazu projde prázdný SimpleXmlElement, a poté kód vrací typeError u ověření zda-li hodnota PSČ existuje.
Upravil jsem to v PR #19

Situaci se mi nepovedlo nijak nasimulovat, ale sem tam se mi objeví v error logách.

Každopádně do logu se mi chytilo ještě něco a to konkrétně tohle:
[2021-03-10 03-31-21] PHP Notice: Undefined index: D in /project/vendor/h4kuna/ares/src/Ares.php:119 @ CLI (PID: 23913): /project/bin/console.php rabbitmq:staticConsumer aresApiConsumer 1000
nejedná se o to samé jako u #14 ?

Returning NACE from ARES

Hello, its possible to add nace from ares to returning data?

// example url when ares returning nace
https://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico=04308662

// nace part from ares
<D:Nace>
<D:NACE zdroj="RES">6312</D:NACE>
<D:NACE zdroj="RES">620</D:NACE>
<D:NACE zdroj="RES">70220</D:NACE>
</D:Nace>

Tell me if i should make PR or will you do it. Thank you :)

Undefined property: stdClass::$datumVzniku

Ahoj, když zkouším následující kod

<?php

require_once './vendor/autoload.php';
ini_set('zend.assertions', 0);
use h4kuna\Ares;
/** @var Ares\Ares $ares */
$ares = (new Ares\AresFactory())->create();
$numbers = ['one' => '67909442', 'two' => '27735753'];

try {
	foreach ($ares->loadBasicMulti($numbers) as $name => $r) {
		var_dump($name, $r->company);
	}
} catch (Ares\Exceptions\ServerResponseException $e) {
	// no response from server or broken json
}

tak dostanu:

Warning: Undefined property: stdClass::$datumVzniku in /opt/app/www/test/vendor/h4kuna/ares/src/Ares/Core/JsonToDataTransformer.php on line 52

Fatal error: Uncaught TypeError: Cannot assign null to property h4kuna\Ares\Ares\Core\Data::$created of type DateTimeImmutable in /opt/app/www/test/vendor/h4kuna/ares/src/Ares/Core/JsonToDataTransformer.php:52 Stack trace: #0 /opt/app/www/test/vendor/h4kuna/ares/src/Ares/Core/ContentProvider.php(45): h4kuna\Ares\Ares\Core\JsonToDataTransformer->transform(Object(stdClass)) #1 /opt/app/www/test/test.php(11): h4kuna\Ares\Ares\Core\ContentProvider->loadByIdentificationNumbers(Array) #2 {main} thrown in /opt/app/www/test/vendor/h4kuna/ares/src/Ares/Core/JsonToDataTransformer.php on line 52

nevím teda jestli je chyba, že Ares nevrátí datum nebo že Data mají created nenulový, ale chtělo by to nějak ošetřit

composer:

{
    "require": {
        "h4kuna/ares": "v3.0.4",
        "guzzlehttp/guzzle": "7.8.1"
    }
}

ARES XML služby končí k 1.1.2024

Nový ares (REST API): zdroj

Vážení uživatelé,
tímto vám oznamujeme, že jsme spustili pilotní provoz modernizovaného Informačního systému ARES, který je dostupný na adrese "ares.gov.cz".

Technickou dokumentaci - katalog veřejných služeb pro vývojáře je možné získat:

ARES-Technicka-dokumentace-Katalog-verejnych-sluzeb (PDF, 1183 kB)
AresRestApi-verejne (.JSON, 326 kB)

Původní i modernizovaný systém bude provozován souběžně do 30. 9. 2023. Nezbytné změny doporučujeme provést co nejdříve. V případě dotazů se prosím obracejte na email: [email protected]

Ares pro starší verze PHP (7.1)

Ahoj,

Využívám tuto knihovnu pro získávání dat v poměrně starém projektu, který není úplně jednoduché upgradovat (je to projekt, který vznikal cca 8 let, bezpečně ještě běží na PHP 7.1, ale novější už ne). Neplánuješ vytvořit ještě nějakou aktuální "legacy" verzi, která by správně komunikovala s novým ARESem, ale byla použitelná i u starších projektů? Využívám verzi 1.4.14.

Díky za info.

dev-3.x chybí TIN

Zdravím, vidím, že se dějou s knihovnou a asi i s API všelijaké věci :-) Mně dneska knihovna přestala vracet TIN pro subjekty, pro které je ještě v pátek dávala.

JSON, který se vrátí z Endpointu, ještě DIČ obsahuje. A obsahuje ho i s předponou (CZ): https://www.screenpresso.com/=tBQ9g

JSON transform potom přilepí další CZ: https://www.screenpresso.com/=px99e

ADIS pak nic nenajde: https://www.screenpresso.com/=znJpf

setAdis pak tin odnastaví https://www.screenpresso.com/=qn67g

Někde jsem zahlédl, že už vat number je bez předpony, tak jestli to nevrátili zpět :-)

dev-3.x chybí TIN

Zdravím, vidím, že se dějou s knihovnou a asi i s API všelijaké věci :-) Mně dneska knihovna přestala vracet TIN pro subjekty, pro které je ještě v pátek dávala.

JSON, který se vrátí z Endpointu, ještě DIČ obsahuje. A obsahuje ho i s předponou (CZ): https://www.screenpresso.com/=tBQ9g

JSON transform potom přilepí další CZ: https://www.screenpresso.com/=px99e

ADIS pak nic nenajde: https://www.screenpresso.com/=znJpf

setAdis pak tin odnastaví https://www.screenpresso.com/=qn67g

Někde jsem zahlédl, že už vat number je bez předpony, tak jestli to nevrátili zpět :-)

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.