diff --git a/README.md b/README.md index 796d1b8..0b8d802 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,34 @@ Podrobnou dokumentace k API najdete na [http://docs.vyfakturujcz.apiary.io/](htt 6. V souboru /examples/5-invoice-sendMail.php se nachází ukázka, jak odeslat e-mail s fakturou 7. V souboru /examples/6-invoice-setPayment.php se nachází ukázka, jak provést uhrazení faktury 8. V souboru /examples/7-test-invoice-download.php se nachází ukázka, jak pracovat s funkci test_invoice__asPdf(). Tato funkce vrátí PDF aniž by uložila dokument (fakturu) do systému. Hodí se zejména pokud potřebujeme odladit vzhled faktury +9. V souboru /examples/8-invoice-sendEET.php se nachází ukázka, jak poslat požadavek na zaúčtování dokladu v EET +10. V souboru /examples/9-invoice_search.php se nachází ukázka, jak vyhledávat v seznamu faktur +11. V souboru /examples/a-product.php se nachází ukázka, jak vyhledávat v Seznamu produktů (SimpleShop.cz) +12. V souboru /examples/b-payment-method.php se nachází ukázka, jak získat seznam platebních metod (způsobů uhrady) +32. V souboru /examples/c-number-series.php se nachází ukázka, jak získat seznam číslených řad ## Changelog +### Verze 2.1.6 + ++ Čtení nastavení platebních metod (způsobů úhrady) přes getSettings_paymentMethods() ++ Čtení nastavení číslených řad přes getSettings_numberSeries() ++ Podpora pro SimpleShop - čtení prodůktů přes getProducts($args) + + +### Verze 2.1.5 + ++ Podpora EET ++ Manuální odeslání do EET přes invoice_sendEet($id) ++ Pro API byla vyčleněna nová URL https://api.vyfakturuj.cz/2.0/ (původní je stále funkční) ++ Ve fci invoice_setPayment($id,$date = null,$amount = null) je nově $date jako volitelný parametr + ### Verze 2.1.4 -+ Možnost filtrace v seznamu faktur getInvoices(array('id_customer' => 123)) -+ Možnost filtrace v seznamu kontaktů getContacts(array('mail_to' => 'info@vyfakturuj.cz')) -+ Možnost filtrace v seznamu šablon a pravidelných faktur getTemplates(array('type' => 2,'end_type' => 1)) ++ Možnost filtrace v seznamu faktur přes getInvoices(array('id_customer' => 123)) ++ Možnost filtrace v seznamu kontaktů přes getContacts(array('mail_to' => 'info@vyfakturuj.cz')) ++ Možnost filtrace v seznamu šablon a pravidelných faktur přes getTemplates(array('type' => 2,'end_type' => 1)) ### Verze 2.1.3 diff --git a/examples/2-invoice.php b/examples/2-invoice.php index 78775ba..c765b69 100644 --- a/examples/2-invoice.php +++ b/examples/2-invoice.php @@ -17,6 +17,9 @@ # $opt = array( + 'type' => 1, + 'calculate_vat' => 2, + 'payment_method' => 2, 'customer_IC' => '123456789', 'customer_DIC' => 'CZ123456789', 'customer_name' => 'Ukázková Firma', @@ -24,6 +27,7 @@ 'customer_city' => 'Praha', 'customer_zip' => '10300', 'customer_country' => 'Česká republika', + 'currency' => 'EUR', 'items' => array( array( 'text' => 'Stěrač na ponorku', @@ -40,15 +44,27 @@ 'unit_price' => 0, 'vat_rate' => 0, ) - ) + ), + 'action_after_create_send_to_eet' => true ); $inv = $vyfakturuj_api->createInvoice($opt); // vytvoříme novou fakturu - +//$inv = $vyfakturuj_api->invoice_setPayment($inv['id']); // vytvoříme novou fakturu echo '

Vytvořili jsme fakturu:

'; echo '
'.print_r($inv,true).'
'; +$_ID_DOKUMENTU = $inv['id']; // uložíme si ID nového dokumentu +die; +$opt = array( + 'type' => 32, + 'id_parent' => $_ID_DOKUMENTU, + 'action_after_create_send_to_eet' => true +); +$inv = $vyfakturuj_api->createInvoice($opt); // vytvoříme novou fakturu +echo '

Vytvořili jsme ODD:

'; +echo '
'.print_r($inv,true).'
'; $_ID_DOKUMENTU = $inv['id']; // uložíme si ID nového dokumentu +die; # # #################################################################################### diff --git a/examples/5-invoice-sendMail.php b/examples/5-invoice-sendMail.php index 16fe38f..5e93bd6 100644 --- a/examples/5-invoice-sendMail.php +++ b/examples/5-invoice-sendMail.php @@ -16,6 +16,8 @@ # # +$_ID_DOKUMENTU = 51672; + $opt = array(// šablona, kterou si přejeme odeslat 'type' => 3, 'to' => 'demo@vyfakturuj.cz',// lze také použit tento zápis: 'demo1@vyfakturuj.cz, demo2@vyfakturuj.cz' @@ -26,7 +28,7 @@ 'pdfAttachment' => true,// chceme poslat včetně PDF v příloze ); -$res = $vyfakturuj_api->invoice_sendMail_test(54525,$opt); // Získáme šablonu, co by se odeslalo +$res = $vyfakturuj_api->invoice_sendMail_test($_ID_DOKUMENTU,$opt); // Získáme šablonu, co by se odeslalo echo '

Tento mail by se odeslal:

'; echo '
'.print_r($res,true).'
'; @@ -43,9 +45,9 @@ #################################################################################### # # -//die('Zakomentujte řádek '.__LINE__.' pokud chcete e-mail skutečně odeslat.'); // tento řádek zakomentujte a mail se skutečně odešle. +die('Odkomentujte řádek '.__LINE__.' pokud chcete e-mail skutečně odeslat.'); // tento řádek zakomentujte a mail se skutečně odešle. -$res = $vyfakturuj_api->invoice_sendMail(54525,$opt); // Odešleme e-mail +$res = $vyfakturuj_api->invoice_sendMail($_ID_DOKUMENTU,$opt); // Odešleme e-mail echo '

Tento e-mail byl odeslán:

'; echo '
'.print_r($res,true).'
'; diff --git a/examples/6-invoice-setPayment.php b/examples/6-invoice-setPayment.php index 3484bc1..d79727c 100644 --- a/examples/6-invoice-setPayment.php +++ b/examples/6-invoice-setPayment.php @@ -23,7 +23,7 @@ $_DATUM_UHRADY = '2016-07-25'; -$res = $vyfakturuj_api->invoice_setPayment($_ID_DOKUMENTU,$_DATUM_UHRADY); // Získáme šablonu, co by se odeslalo +$res = $vyfakturuj_api->invoice_setPayment($_ID_DOKUMENTU,$_DATUM_UHRADY); // Provedeme uhrazení echo '

Doklad po uhrazení:

'; echo '
'.print_r($res,true).'
'; diff --git a/examples/8-invoice-sendEET.php b/examples/8-invoice-sendEET.php new file mode 100644 index 0000000..50e0df0 --- /dev/null +++ b/examples/8-invoice-sendEET.php @@ -0,0 +1,27 @@ +invoice_sendEet($_ID_DOKUMENTU); // Odešleme e-mail + +echo '

Tento dokument byl odeslán do EET:

'; +echo '
'.print_r($res,true).'
'; + +exit; diff --git a/examples/9-invoice_search.php b/examples/9-invoice_search.php new file mode 100644 index 0000000..6dbece4 --- /dev/null +++ b/examples/9-invoice_search.php @@ -0,0 +1,20 @@ + '2016-10-01', +// 'date_created_to' => '2016-10-31', + 'flags' => 64, +); + + +$inv = $vyfakturuj_api->getInvoices($opt); + +echo '

Načetli jsme tyto doklady:

'; +echo '
'.print_r($inv,true).'
'; + + +exit; diff --git a/examples/a-product.php b/examples/a-product.php new file mode 100644 index 0000000..8187f6b --- /dev/null +++ b/examples/a-product.php @@ -0,0 +1,19 @@ + '2016-10-01', + 'date_created_to' => '2016-10-31', +); + + +$ret = $vyfakturuj_api->getProducts($opt); + +echo '

Načetli jsme tyto produkty:

'; +echo '
'.print_r($ret,true).'
'; + + +exit; diff --git a/examples/b-payment-method.php b/examples/b-payment-method.php new file mode 100644 index 0000000..6869daf --- /dev/null +++ b/examples/b-payment-method.php @@ -0,0 +1,13 @@ +getSettings_paymentMethods(); + +echo '

Načetli jsme tyto data:

'; +echo '
'.print_r($inv,true).'
'; + + +exit; diff --git a/examples/c-number-series.php b/examples/c-number-series.php new file mode 100644 index 0000000..47acd4e --- /dev/null +++ b/examples/c-number-series.php @@ -0,0 +1,13 @@ +getSettings_numberSeries(); + +echo '

Načetli jsme tyto data:

'; +echo '
'.print_r($inv,true).'
'; + + +exit; diff --git a/libs/VyfakturujAPI.class.php b/libs/VyfakturujAPI.class.php index 996953a..74b4b65 100644 --- a/libs/VyfakturujAPI.class.php +++ b/libs/VyfakturujAPI.class.php @@ -4,13 +4,13 @@ * Třída pro práci s API Vyfakturuj.cz * * @author Ing. Martin Dostál - * @version 2.1.4 + * @version 2.1.6 */ class VyfakturujAPI{ protected $login = null; protected $apiHash = null; - protected static $URL = 'https://www.vyfakturuj.cz/api/2.0/'; + protected static $URL = 'https://api.vyfakturuj.cz/2.0/'; protected $lastInfo = null; const METHOD_POST = 'post', @@ -84,16 +84,26 @@ public function invoice_sendMail($id,$data){ return $this->_post('invoice/'.$id.'/send-mail/',$data); } + /** + * Odesle dokument do EET + * + * @param int $id + * @return array + */ + public function invoice_sendEet($id){ + return $this->_post('invoice/'.$id.'/send-eet/'); + } + /** * Uhradí fakturu * * @param int $id id dokumentu - * @param date $date Např: 2016-12-31, pokud je nastaveno na 0000-00-00 pak se zruší uhrada dokladu + * @param date|null $date Např: 2016-12-31, pokud je nastaveno na 0000-00-00 pak se zruší uhrada dokladu * @param int|float $amount Kolik bylo uhrazeno. Pokud je NULL, bude faktura uhrazena nezávisle na částce * @return array Detail dokladu po uhrazeni */ - public function invoice_setPayment($id,$date,$amount = null){ - $data = array('date' => $date); + public function invoice_setPayment($id,$date = null,$amount = null){ + $data = array('date' => is_null($date) ? date("Y-m-d") : $date); if(!is_null($amount)){ $data['amount'] = $amount; } @@ -211,6 +221,33 @@ public function deleteTemplate($id){ return $this->_delete('template/'.$id.'/'); } + /** + * Vrátí seznam všech produktu + * + * @return array + */ + public function getProducts($args = array()){ + return $this->_get('product/?'.http_build_query($args)); + } + + /** + * Vrati seznam platebních metod + * + * @return array + */ + public function getSettings_paymentMethods(){ + return $this->_get('settings/payment-method/'); + } + + /** + * Vrati seznam číselných řad + * + * @return array + */ + public function getSettings_numberSeries(){ + return $this->_get('settings/number-series/'); + } + /** * Testovací funkce pro ověření správného spojení se serverem * @@ -275,9 +312,8 @@ private function _connect($path,$method,$data = array()){ $this->lastInfo = curl_getinfo($curl); $this->lastInfo['dataSend'] = $data; curl_close($curl); - $return = json_decode($response,true); - return $return ? $return : $response; + return is_array($return) ? $return : $response; } /**