Skip to content

Commit

Permalink
API 2.1.3
Browse files Browse the repository at this point in the history
+ Možnost stáhnout ukázkové PDF
  • Loading branch information
Dosty85 committed Oct 4, 2016
1 parent d2032e7 commit f566260
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 4 deletions.
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Vyfakturuj API PHP
Příhlady API napojení na aplikaci Vyfakturuj.cz v programovacím jazyce PHP

Příklady API napojení na aplikaci [Vyfakturuj.cz](https://www.vyfakturuj.cz/) v programovacím jazyce PHP

Podrobnou dokumentace k API najdete na [http://docs.vyfakturujcz.apiary.io/](http://docs.vyfakturujcz.apiary.io/)

## Postup instalace
1. V souboru /examples/config.php doplnit potřebné údaje
Expand All @@ -8,15 +11,20 @@ Příhlady API napojení na aplikaci Vyfakturuj.cz v programovacím jazyce PHP
4. V souboru /examples/3-contact.php se nachází ukázka, jak vytvářet, updatovat, získávat a mazat kontakty
5. V souboru /examples/4-template.php se nachází ukázka, jak vytvářet, updatovat, získávat a mazat pravidelné faktury a šablony
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 se nachází ukázka, jak provést uhrazení faktury
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


## Changelog

### Verze 2.1.3

+ Přidání podpůrné funkce test_invoice__asPdf() - vytvoření faktury a stažení v PDF bez uložení v systému

### Verze 2.1.2

+ Možnost uhradit doklad (fakturu)
+ Popora souvisejících dokladů (faktur) v odpovědích
+ Podpora souvisejících dokladů (faktur) v odpovědích

### Verze 2.1.1

Expand Down
40 changes: 40 additions & 0 deletions examples/7-test-invoice-download.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

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

$vyfakturuj_api = new VyfakturujAPI(VYFAKTURUJ_API_LOGIN,VYFAKTURUJ_API_KEY);

$opt = array(
'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',
'items' => array(
array(
'text' => 'Stěrač na ponorku',
'unit_price' => 990.25,
'vat_rate' => 15,
),
array(
'text' => 'Kapalina do ostřikovačů 250 ml',
'unit_price' => 59,
'vat_rate' => 15,
),
array(
'text' => 'Doprava',
'unit_price' => 0,
'vat_rate' => 0,
)
)
);

$result = $vyfakturuj_api->test_invoice__asPdf($opt);

echo '<h2>Nepodařilo se stáhnout PDF:</h2>';
echo '<pre>'.print_r($result,true).'</pre>';


exit;
29 changes: 28 additions & 1 deletion libs/VyfakturujAPI.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Třída pro práci s API Vyfakturuj.cz
*
* @author Ing. Martin Dostál <info@vyfakturuj.cz>
* @version 2.1.2
* @version 2.1.3
*/
class VyfakturujAPI{

Expand Down Expand Up @@ -219,6 +219,32 @@ public function test(){
return $this->_get('test/');
}

/**
* Test faktury v PDF.
* Pošle data na server, vytvoří na serveru fakturu kterou ale neuloží a pošle zpět ve formátu PDF.
* Pokud se podaří fakturu vytvořit, pak je poslána ve formátu PDF na výstup. Jinak je vráceno pole.
*
* @param array $data
* @return array
*/
public function test_invoice__asPdf($data){
$result = $this->_post('test/invoice/download/',$data);
if(array_key_exists('content',$result)){
ob_end_clean();
$content = base64_decode($result['content']);
header("Cache-Control: public");
$filename = $result['filename'];
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=\"".$filename.".pdf\"");
header('Content-type: application/pdf');
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".strlen($content));
echo $content;
exit;
}
return $result;
}

private function _connect($path,$method,$data = array()){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,static::$URL.$path);
Expand Down Expand Up @@ -246,6 +272,7 @@ private function _connect($path,$method,$data = array()){

$response = curl_exec($curl);
$this->lastInfo = curl_getinfo($curl);
$this->lastInfo['dataSend'] = $data;
curl_close($curl);

$return = json_decode($response,true);
Expand Down

0 comments on commit f566260

Please sign in to comment.