Skip to content

Commit

Permalink
API 2.1.6
Browse files Browse the repository at this point in the history
+ Č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)
  • Loading branch information
Dosty85 committed Jul 10, 2017
1 parent 2a5fd3b commit 1ed08b5
Show file tree
Hide file tree
Showing 10 changed files with 181 additions and 16 deletions.
25 changes: 22 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
20 changes: 18 additions & 2 deletions examples/2-invoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,17 @@
#

$opt = array(
'type' => 1,
'calculate_vat' => 2,
'payment_method' => 2,
'customer_IC' => '123456789',
'customer_DIC' => 'CZ123456789',
'customer_name' => 'Ukázková Firma',
'customer_street' => 'Pouliční 79/C',
'customer_city' => 'Praha',
'customer_zip' => '10300',
'customer_country' => 'Česká republika',
'currency' => 'EUR',
'items' => array(
array(
'text' => 'Stěrač na ponorku',
Expand All @@ -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 '<h2>Vytvořili jsme fakturu:</h2>';
echo '<pre>'.print_r($inv,true).'</pre>';
$_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 '<h2>Vytvořili jsme ODD:</h2>';
echo '<pre>'.print_r($inv,true).'</pre>';
$_ID_DOKUMENTU = $inv['id']; // uložíme si ID nového dokumentu
die;
#
#
####################################################################################
Expand Down
8 changes: 5 additions & 3 deletions examples/5-invoice-sendMail.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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 '<h2>Tento mail by se odeslal:</h2>';
echo '<pre>'.print_r($res,true).'</pre>';
Expand All @@ -43,9 +45,9 @@
####################################################################################
#
#
//die('<font color="red">Zakomentujte řádek '.__LINE__.' pokud chcete e-mail skutečně odeslat.</font>'); // tento řádek zakomentujte a mail se skutečně odešle.
die('<font color="red">Odkomentujte řádek '.__LINE__.' pokud chcete e-mail skutečně odeslat.</font>'); // 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 '<h2>Tento e-mail byl odeslán:</h2>';
echo '<pre>'.print_r($res,true).'</pre>';
Expand Down
2 changes: 1 addition & 1 deletion examples/6-invoice-setPayment.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 '<h2>Doklad po uhrazení:</h2>';
echo '<pre>'.print_r($res,true).'</pre>';
Expand Down
27 changes: 27 additions & 0 deletions examples/8-invoice-sendEET.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

include(__DIR__.'/config.php');

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);


#
#
####################################################################################
####################################################################################
##### #####
##### Odeslání dokumentu do EET #####
##### #####
####################################################################################
####################################################################################
#
#

$_ID_DOKUMENTU = $_GET['id'];

$res = $vyfakturuj_api->invoice_sendEet($_ID_DOKUMENTU); // Odešleme e-mail

echo '<h2>Tento dokument byl odeslán do EET:</h2>';
echo '<pre>'.print_r($res,true).'</pre>';

exit;
20 changes: 20 additions & 0 deletions examples/9-invoice_search.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

include(__DIR__.'/config.php');

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);

$opt = array(
// 'date_created_from' => '2016-10-01',
// 'date_created_to' => '2016-10-31',
'flags' => 64,
);


$inv = $vyfakturuj_api->getInvoices($opt);

echo '<h2>Načetli jsme tyto doklady:</h2>';
echo '<pre>'.print_r($inv,true).'</pre>';


exit;
19 changes: 19 additions & 0 deletions examples/a-product.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

include(__DIR__.'/config.php');

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);

$opt = array(
'date_created_from' => '2016-10-01',
'date_created_to' => '2016-10-31',
);


$ret = $vyfakturuj_api->getProducts($opt);

echo '<h2>Načetli jsme tyto produkty:</h2>';
echo '<pre>'.print_r($ret,true).'</pre>';


exit;
13 changes: 13 additions & 0 deletions examples/b-payment-method.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

include(__DIR__.'/config.php');

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);

$inv = $vyfakturuj_api->getSettings_paymentMethods();

echo '<h2>Načetli jsme tyto data:</h2>';
echo '<pre>'.print_r($inv,true).'</pre>';


exit;
13 changes: 13 additions & 0 deletions examples/c-number-series.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

include(__DIR__.'/config.php');

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);

$inv = $vyfakturuj_api->getSettings_numberSeries();

echo '<h2>Načetli jsme tyto data:</h2>';
echo '<pre>'.print_r($inv,true).'</pre>';


exit;
50 changes: 43 additions & 7 deletions libs/VyfakturujAPI.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
* Třída pro práci s API Vyfakturuj.cz
*
* @author Ing. Martin Dostál <info@vyfakturuj.cz>
* @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',
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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
*
Expand Down Expand Up @@ -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;
}

/**
Expand Down

0 comments on commit 1ed08b5

Please sign in to comment.